この章では、Solaris 2.x 環境のサービスアクセス機能 (SAF) について、システム管理者またはネットワーク管理者が知っておく必要があることがらを詳細に説明します。
SAF コマンドの使用例については、次の表で必要な手順の説明を探してください。
端末とモデムの概要については、第 47 章「端末とモデム管理の概要」を参照してください。
SAF は端末、モデム、および他のネットワーク装置を管理するためのツールです。SAF プログラムの最上位にはサービスアクセスコントローラ (SAC) があります。SAC は、管理者が sacadm コマンドにより管理するポートモニターを制御します。各ポートモニターは 1 つ以上のポートを管理できます。
管理者は pmadm コマンドを使用して、ポートに対応するサービスを管理します。SAC が提供するサービスはネットワークによって異なりますが、SAC と管理プログラム sacadm と pmadm はネットワークには依存しません。
表 49-1 に SAF の制御階層を示します。sacadm コマンドを使用すると、ttymon および listen ポートモニターを制御する SAC を管理できます。
また、ttymon と listen のサービスは pmadm により制御されます。ttymon の 1 つのインスタンスは複数のポートにサービスを提供し、listen の 1 つのインスタンスはネットワークインタフェース上で複数のサービスを提供できます。
表 49-1 SAF の制御階層
機能 |
プログラム |
説明 |
---|---|---|
全体の管理 |
sacadm |
ポートモニターの追加および削除用コマンド |
サービスアクセスコントローラ |
sac |
SAF のマスタプログラム |
ポートモニター |
ttymon listen |
シリアルポートのログイン要求を監視する。 ネットワークのサービス要求を監視する。 |
ポートモニターサービスの管理 |
pmadm |
ポートモニターのサービス制御用コマンド |
サービス |
ログイン、リモートプロシージャコール、その他 |
SAF がアクセスを可能にするサービス |
コンソールの管理 |
コンソールログイン |
コンソールは、/etc/inittab ファイル中のエントリ経由で、ttymon の express モードを使用して、自動的に設定される。pmadm か sacadm を使用して、コンソールを直接管理しないこと。詳細については、「ttymon とコンソールポート」を参照。 |
sacadm コマンドは SAF 階層の最上位のコマンドです。sacadm コマンドは主に、ttymon および listen などのポートモニターを追加したり、削除したりするのに使用します。このコマンドにはそれ以外に、ポートモニターの現在の状態の表示、ポートモニターの構成スクリプトの管理などの機能があります。
サービスアクセスコントローラ (SAC) プログラムはすべてのポートモニターを管理します。システムはマルチユーザーモードになると自動的に SAC を起動します。
SAC は、起動されるとまず、各システムの構成スクリプトを探して解釈し、それによって SAC の環境をカスタマイズします。ここで行われる SAC の環境に対する変更は、SAC のすべての「子プロセス」に継承されます。継承された環境は継承した子プロセスで変更できます。
SAC プログラムは、システムごとの構成スクリプトの解釈が終わると、SAC の管理ファイルを読み取り、指定されたポートモニターを起動します。各ポートモニターについて、SAC はそれ自身のコピーを実行します (技術的には、SAC が子プロセスをフォークします)。次に、各子プロセスは、それぞれのポートモニターごとの構成スクリプトがあればそれを解釈します。
各ポートモニターの構成スクリプトに指定されている環境を変更すると、それぞれのポートモニターが影響を受け、さらにそれがポートモニターのすべての子プロセスに継承されます。最後に、子プロセスは SAC 管理ファイル内のコマンドを使用して親であるポートモニタープログラムを実行します。
次に、SAC を最初に起動したときに行われる一連の処理を要約します。
init が実行レベル 2 で SAC プログラムを生成します。
SAC プログラムがシステムごとの構成スクリプト /etc/saf/_safconfig を読み取ります。
SAC プログラムが SAC 管理ファイル /etc/saf/_sactab を読み取ります。
SAC プログラムが起動する各ポートモニターの子プロセスをフォークします。
各ポートモニターがポートモニターごとの構成スクリプト /etc/saf/pmtag/_config を読み取ります。
pmadm コマンドでポートモニターのサービスを管理できます。pmadm コマンドは特にサービスを追加または削除したり、サービスを有効または無効にしたりする場合に使用します。このコマンドでは、さらに、各サービスの構成スクリプトをインストールしたり置き換えたり、サービスに関する情報を出力したりすることもできます。
サービスの各インスタンスは、ポートモニター別、ポート別に一意に識別できなければなりません。pmadm コマンドを使用してサービスを管理する場合、pmtag 引数で特定のポートモニターを、また svctag 引数で特定のポートをそれぞれ指定します。
ポートモニターのタイプごとに、SAF はポートモニター固有の構成データのフォーマットを定義するための特別なコマンドを必要とします。この構成データは pmadm コマンドで使用します。ttymon および listen ポートモニター用の特別なコマンドは、それぞれ ttyadm と nlsadmin です。
直結モデムまたは英数字端末を通してログインしようとするたびに、ttymon は次のように動作を開始します。
図 49-1に示すように、init プログラムがブート時に最初に起動されるプロセスです。init は、その管理ファイル (/etc/inittab) を参照して、必要に応じて他のプロセスを起動します。それらのプロセスの 1 つに SAC があります。
SAC が起動されると、今度は SAC がその管理ファイル (/etc/saf/_sactab) に指定されているポートモニターを自動的に起動します。図 49-1には ttymon モニターが 1 つしか示されていません。
ttymon は起動されると、シリアルポート回線を監視してサービス要求がないかどうかを調べます。
ユーザーが英数字端末やモデムを通してログインしようとすると、シリアルポートドライバはその操作をオペレーティングシステムに伝えます。ttymon ポートモニターはシリアルポートの操作を監視し、通信リンクを確立しようとします。つまり、装置との通信に必要なデータ転送速度、回線制御手順、ハンドシェークプロトコルを決定します。
モデムや端末との通信用の正しいパラメータの設定が終わると、ttymon はそれらのパラメータをログインプログラムに渡し、制御を移します。
SAC が ttymon のインスタンスを起動すると、ttymon はそのポートの監視を開始します。ttymon は、各ポートについて指定されている場合、まず回線制御手順を初期化し、次に回線速度と端末の設定を初期化します。初期化に使用される値は、/etc/ttydefs の該当するエントリから得られます。
ttymon ポートモニターは、次に、プロンプトを表示してユーザーからの入力を待ちます。ユーザーが Break キーを押して回線速度が不適当であるという指示を与えると、ttymon は次の速度を設定して、再びプロンプトを表示します。
ポートに対して「自動ボーレート」が有効に設定されている場合は、ttymon はそのポートのボーレートを自動的に決定しようとします。ここで Return キーを押してください。そうすると、ttymon はボーレートを認識し、プロンプトを表示できます。
有効な入力を受け取ると、ttymon はポートのサービスごとの構成ファイルを解釈し、必要な場合は /etc/utmp エントリを作成し、サービス環境を設定し、ポートに対応するサービスを起動します。
サービスが終了すると、ttymon は /etc/utmp エントリがあれば削除し、ポートを初期状態に戻します。
ポートが発着信両用サービス用に構成してある場合は、ttymon は次の処理を行います。
ユーザーをサービスに接続可能にする。
uucico、cu、または ct が、(空いていれば) ポートを発信専用モードで使用できるようにする。
文字を読み取ってからプロンプトを表示する。
接続要求があると (connect-on-carrier フラグが設定してある場合)、プロンプトメッセージを送らないでポートの対応サービスを起動する。
SAF は、将来のモニターや他社製のポートモニターの管理に対応するために総合的な管理方法を提供していますが、Solaris 2.x 環境では ttymon と listen の 2 つだけが実装されています。
ttymon ポートモニターは STREAMS をベースにしています。このモニターは、ポートを監視し、端末のモード、ボーレート、回線制御手順を設定し、ログインプロセスを起動します。(ttymon は、以前のバージョンの Solaris ソフトウェアのもとで getty が提供していたのと同じサービスを Solaris 2.x ユーザーに提供します。)
ttymon ポートモニターは SAC プログラムで実行されます。ttymon は sacadm コマンドを使用して構成します。ttymon の各インスタンスはそれぞれに複数のポートを監視できます。それらのポートはポートモニターの管理ファイル内に指定します。また、この管理ファイルは pmadm および ttyadm コマンドを使用して構成します。
コンソールサービスを管理するのはサービスアクセスコントローラではなく、また、明示的に ttymon 管理ファイルを実行して管理するのでもありません。/etc/inittab ファイル内のエントリを使用して、ttymon を express モードで使用するコンソールポートを管理します。 express モードとは、ttymon の特別なモードのことで、ログインサービスが必要なコマンドによって直接呼び出されます。
/etc/inittab ファイル内のデフォルトのコンソールエントリは、次のようになります。
co:234:respawn:/usr/lib/saf/ttymon -g -h -p "`uname -n` console login: " -T terminal_type -d /dev/console -l console -m ldterm,ttcompat
co:234:respawn: |
co は、エントリをコンソールとして指定する。234 は、動作 respawn の実行レベルを指定する。つまり、失敗した場合、あるいは、実行レベル 2、3、および 4 でない場合、このコンソールエントリが再起動されるべきであることを示す。 |
/usr/lib/saf/ttymon -g -h |
-g オプションを使用するため、正しいボーレートと正しい端末設定をポート上で設定でき、SAC による事前構成なしに、ログインサービスに接続できる。-h オプションは、デフォルトまたは指定した速度に設定する前に、回線速度をゼロに設定することにより、回線をハングアップさせる。 |
-p "`uname -n` console login: |
コンソールポート用のプロンプト文字列を指定する。 |
-tterminal_type |
コンソールの端末タイプを指定する。 |
-d /dev/console -l console -m ldterm,ttcompat |
-d オプションは、コンソールデバイスを指定する。-l オプションは、/etc/ttydefs ファイル内の tty 名を指定する。-m オプションは、プッシュする STREAMS モジュールを指定する。 |
ttymon の管理ファイルは、sacadm および pmadm の他に ttyadm コマンドによっても更新できます。ttyadm コマンドは、ttymon 固有の情報の書式を定義し、それらの情報を標準出力に書き込み、書式付きの ttymon 固有のデータを sacadm および pmadm コマンドに提示する手段を提供します。
したがって、ttyadm は ttymon を直接管理するのではなく、むしろ、一般的な管理用コマンドである sacadm および pmadm を補足するものです。詳細については、ttyadm(1M) のマニュアルページを参照してください。
listen ポートモニターは SAC プログラムのもとで実行されます。このモニターは、ネットワークを監視してサービス要求がないかを調べ、入ってきたら要求を受け付け、それらのサービス要求に応答してサーバーを呼び出します。
listen ポートモニターは sacadm コマンドを使用して構成します。listen の各インスタンスはそれぞれに複数のサービスを提供できます。それらのサービスは listen ポートモニターの管理ファイルに指定します。この管理ファイルは pmadm および nlsadmin コマンドを使用して構成します。
ネットワークリスナープロセスは、トランスポート層インタフェース (TLI) 仕様に準拠する任意の接続型トランスポートプロバイダで使用できます。Solaris 2.x 環境では、listen ポートモニターは、印刷サービスなど inetd が提供しない追加ネットワークサービスを提供します。
listen ポートモニターの管理ファイルは、sacadm および pmadm の他に、nlsadmin コマンドでも更新できます。nlsadmin コマンドは、listen 固有の情報の書式を定義して標準出力に書き込み、書式付きの listen 固有のデータを sacadm および pmadm コマンドに提示する手段を提供します。
したがって、nlsadmin は listen を直接管理するのではなく、むしろ一般的な管理用コマンドである sacadm および pmadm を補足するものです。詳細については、nlsadmin(1M) のマニュアルページを参照してください。
各ネットワークには、ネットワークリスナープロセスのインスタンスが少なくとも 1 つは存在します。各ネットワークはそれぞれ個別に構成されます。nlsadmin コマンドは listen ポートモニターの動作状態を制御します。
nlsadmin コマンドは、与えられたネットワークに対して listen ポートモニターを設定し、そのポートモニターの固有の属性を構成し、そのモニターを起動したり、強制終了させることができます。さらに、マシン上にある listen ポートモニターについて報告することもできます。詳細については、nlsadmin(1M) のマニュアルページを参照してください。
sacadm コマンドを使用して ttymon ポートモニターを追加したり、表示したり、削除したり、終了したり、起動したり、有効または無効にすることができます。
次の手順を行うにはスーパーユーザーでなければなりません。
ttymon ポートモニターを追加するには、次のように入力します。
# sacadm -a -p mbmon -t ttymon -c /usr/lib/saf/ttymon -v `ttyadm -V` -y "TTY Ports a & b"
-a |
ポートモニターフラグを追加する。 |
-p |
mbmon をポートモニタータグとして指定する。 |
-t |
ポートモニタータイプを ttymon として指定する。 |
-c |
ポートモニターを起動するのに使用するコマンド文字列を定義する。 |
-v |
ポートモニターのバージョン番号を指定する。 |
-y |
ポートモニターのインスタンスを説明するコメントを指定する。 |
ttymon ポートモニターの状態を表示するには、次のように入力します。
# sacadm -l -p mbmon
-l |
ポートモニターの状態フラグを表示する。 |
-p |
mbmon をポートモニターのタグとして指定する。 |
# sacadm -l -p mbmon PMTAG PMTYPE FLGS RCNT STATUS COMMAND mbmon ttymon - 0 STARTING /usr/lib/saf/ttymon #TTY Ports a & b
PMTAG mbmon |
ポートモニター名 mbmon を指定する。 |
PMTYPE ttymon |
ポートモニターのタイプ ttymon を指定する。 |
FLGS - |
次の 2 つのフラグが設定されているかどうかを示す。 d は、新しいポートモニターを有効にしない。 x は、新しいポートモニターを起動しない。この例では、どちらのフラグも設定されていない。 |
RCNT 0 |
戻りカウント値を示す。0 の戻りカウントは、ポートモニターが失敗した場合でも再起動しないことを示す。 |
STATUS STARTING |
ポートモニターの現在の状態を示す。 |
COMMAND /usr/lib/saf ... |
ポートモニターを起動するコマンドを指定する。 |
#TTY Ports a & b |
ポートモニターを説明するコメントを指定する。 |
ttymon ポートモニターを終了させるには、次のように入力します。
# sacadm -k -p mbmon
-k |
ポートモニターの状態フラグを終了する。 |
-p |
mbmon をポートモニターのタグとして指定する。 |
終了した ttymon ポートモニターを起動するには、次のように入力します。
# sacadm -s -p mbmon
-s |
ポートモニターの状態フラグを起動する。 |
-p |
mbmon をポートモニターのタグとして指定する。 |
ポートモニターを無効にすると、以前から存在しているサービスをそのまま有効にするため、新しいサービスが起動できなくなります。
ttymon ポートモニターを無効にするには、次のように入力します。
# sacadm -d -p mbmon
-d |
ポートモニターの状態フラグを無効にする。 |
-p |
mbmon をポートモニターのタグとして指定する。 |
ttymon ポートモニターを有効にすると、そのモニターが新しい要求にサービスを提供できるようになります。
ttymon ポートモニターを有効にするには、次のように入力します。
# sacadm -e -p mbmon
-e |
ポートモニターの状態フラグを有効にする。 |
-p |
mbmon をポートモニターのタグとして指定する。 |
ttymon ポートモニターを削除するには、次のように入力します。
# sacadm -r -p mbmon
-r |
ポートモニターの状態フラグを削除する。 |
-p |
mbmon をポートモニターのタグとして指定する。 |
ポートモニターを削除すると、それに関連するすべての構成ファイルが削除されます。ポートモニター構成ファイルは sacadm では更新や変更ができません。ポートモニターを再構成するには、それを削除してから新しいポートモニターを追加してください。
pmadm コマンドを使用してサービスを追加したり、ポートモニターに関連付けられている 1 つ以上のポートのサービスを表示したり、また、サービスを有効または無効にしたりできます。
次の手順を行うにはスーパーユーザーでなければなりません。
標準の端末サービスを mbmon ポートモニターに追加するには、次のように入力します。
# pmadm -a -p mbmon -s a -i root -v `ttyadm -V` -m "`ttyadm -i 'Terminal disabled' -l contty -m ldterm,ttcompat -S y -d /dev/term/a -s /usr/bin/login`"
上記の入力例では、contty の後が次の行にまたがっていますが、実際には Return キーを押さずに (改行なしに) 入力します。
-a |
ポートモニターの状態フラグを追加 (add) する。 |
-p |
mbmon をポートモニタータグとして指定する。 |
-s |
a をポートモニターサービスタグとして指定する。 |
-i |
識別情報を、実行中にポートモニターサービスタグに割り当てられるように指定する。 |
-v |
ポートモニターのバージョン番号を指定する。 |
-m |
ttymon により書式化された ttyadm 固有の構成データを指定する。 |
上記の pmadm コマンドには ttyadm コマンドが組み込まれています。その組み込みコマンドの中の指定項目の意味は次のとおりです。
-b |
ポートフラグを発着信両用に指定する。 |
-i |
無効応答メッセージを指定する。 |
-l |
/etc/ttydefs() にあるどの TTY 名を使用するか指定する。 |
-m |
サービスを起動する前にプッシュする STREAMS モジュールを指定する。 |
-d |
TTY ポートに使用する装置へのフルパス名を指定する。 |
-s |
接続要求を受信したとき起動するサービスへのフルパス名を指定する。引数が必要な場合、コマンドと引数を二重引用符 (") で囲む。 |
pmadm コマンドを次に示すように使用して、特定のポートモニターに設定されている 1 つまたはすべての TTY ポートを表示します。
ポートモニターの 1 つのサービスを表示するには、次のように入力します。
# pmadm -l -p mbmon -s a
-l |
サービス情報を表示するフラグ |
-p |
mbmon をポートモニタータグとして指定する。 |
-s |
a をポートモニターサービスタグとして指定する。 |
すべてのポートモニターのすべてのサービスを表示するには、次のように入力します。
# pmadm -l
-l |
サービス情報を表示するフラグ。 |
特定のポートモニターのすべてのサービスを表示するには、次のように入力します。
# pmadm -l -p mbmon
-l |
サービス情報を表示するフラグ |
-p |
mbmon をポートモニタータグとして指定する。 |
# pmadm -l -p mbmon PMTAG PMTYPE SVCTAG FLAGS ID <PMSPECIFIC> mbmon ttymon a - root /dev/term/a - - /usr/bin/login - contty ldterm,ttcompat login: Terminal disabled - y #
mbmon |
pmadm -p コマンドを使用して設定された、ポートモニター名 mbmon を指定する。 |
ttymon |
ポートモニターのタイプ ttymon を指定する。 |
a |
pmadm -s コマンドを使用して設定された、サービスタグ値を示す。 |
- |
次のフラグが pmadm -f コマンドを使用して設定されているかどうかを指定する。 x - サービスを有効にしないことを意味する。 u - サービス用の utmp エントリを作成することを意味する。この例では、どちらのフラグも設定されていない。 |
root |
起動時にサービスに割り当てられた ID を指定する。この値は、pmadm -i コマンドを使用して設定される。 |
<PMSPECIFIC> Information |
|
/dev/term/a |
ttyadm -d コマンドを使用して設定された、TTY ポートパス名を示す。 |
- |
次のフラグが ttadm -c -b -h -I -r コマンドを使用して設定されているかどうかを示す。 c - ポート用のキャリアフラグに接続を設定する。 b - ポートが双方向性である (着信トラフィックと発信トラフィックの両方を許可する) と設定する。 h - 着呼が受信された直後の自動ハングアップを抑制する。 I - ポートを初期化する。 r - login: メッセージを出力する前に、ポートから文字を受信するまで、ttymon を待機させる。 |
- |
ttyadm -r オプションを使用して設定された値を示す。このオプションは、ポートからデータを受信した後に、ttymon がプロンプトを表示するときを決定する。カウントが 0 の場合、ttymon は、任意の文字を受信するまで待機する。カウントが 0 より大きい場合、ttymon は、カウント新規行を受信するまで待機する。この例では、値は設定されていない。 |
/usr/bin/login |
接続を受信したときに呼び出されるサービスのフルパス名を指定する。この値は、ttyadm -s コマンドを使用して設定される。 |
- |
ttyadm -t コマンドの (タイムアウト) 値を指定する。このオプションは、ポートを開くことが成功した場合に、ttymon がポートを閉じること、および入力データがタイムアウト秒内に受信されていないことを指定する。この例では、タイムアウト値は設定されていない。 |
contty |
/etc/ttydefs ファイル中の TTY 名を指定する。この値は、ttyadm -l コマンドを使用して設定される。 |
ldterm,ttcompat |
プッシュする STREAMS モジュールを指定する。これらのモジュールは、ttyadmin -m コマンドを使用して設定される。 |
login: Terminal disabled |
ポートが無効であるときに表示される、アクティブでないメッセージを指定する。このメッセージは、ttyadm -i コマンドを使用して設定される。 |
tvi925 |
ttyadm -T コマンドを使用して設定されている場合、端末タイプを指定する。この例では、端末タイプは、tvi925。 |
y |
ttyadm -S コマンドを使用して設定されたソフトウェアキャリア値を指定する。n は、ソフトウェアキャリアをオフにする。y は、ソフトウェアキャリアをオンにする。この例では、ソフトウェアキャリアは、オン。 |
# |
pmadm -y コマンドで指定した任意のコメントを指定する。この例では、コメントは存在しない。 |
無効になっているポートモニターサービスを有効にするには、次のように入力します。
# pmadm -e -p mbmon -s a
-e |
フラグを有効にする。 |
-p |
mbmon をポートモニタータグとして指定する。 |
-s |
a をポートモニターサービスタグとして指定する。 |
ポートモニターサービスを無効にするには、次のように入力します。
# pmadm -d -p mbmon -s a
-d |
フラグを無効にする。 |
-p |
mbmon をポートモニタータグとして指定する。 |
-s |
a をポートモニターサービスタグとして指定する。 |
sacadm コマンドを使用して listen ポートモニターを追加したり、表示したり、終了させたり、起動したり、有効または無効にしたり、削除したりします。
次の手順を行うにはスーパーユーザーでなければなりません。
listen ポートモニターを追加するには、次のように入力します。
# sacadm -a -p tcp -t listen -c /usr/lib/saf/listen -v `nlsadmin -V` -y "le0 ethernet"
-a |
ポートモニターフラグを追加する。 |
-p |
tcp をポートモニタータグとしてを指定する。 |
-t |
ポートモニターのタイプを listen として指定する。 |
-c |
ポートモニターを起動するコマンド文字列を定義する。 |
-v |
ポートモニターのバージョン番号を指定する。 |
-y |
ポートモニターのインスタンスを説明するコメントを定義する。 |
listen ポートモニターの状態を表示するには、次のように入力します。
# sacadm -l -p tcp
-l |
ポートモニター状態フラグを表示する。 |
-p |
tcp をポートモニタータグとして指定する。 |
listen ポートモニターを終了させるには、次のように入力します。
# sacadm -k -p tcp
-k |
ポートモニターフラグを強制終了する。 |
-p |
tcp をポートモニタータグとして指定する。 |
listen ポートモニターを起動するには、次のように入力します。
# sacadm -s -p tcp
-s |
ポートモニターフラグを起動する。 |
-p |
tcp をポートモニタータグとして指定する。 |
listen ポートモニターを有効にするには、次のように入力します。
# sacadm -e -p tcp
-e |
ポートモニターフラグを有効にする。 |
-p |
tcp をポートモニタータグとして指定する。 |
listen ポートモニターを無効にするには、次のように入力します。
# sacadm -d -p tcp
-e |
ポートモニターフラグを無効にする。 |
-p |
tcp をポートモニタータグとして指定する。 |
listen ポートモニターを削除するには、次のように入力します。
# sacadm -r -p tcp
-r |
ポートモニターフラグを削除する。 |
-p |
tcp をポートモニタータグとしてを指定する。 |
pmadm コマンドを使用して、listen ポートモニターに対応させるサービスを追加したり、有効または無効にしたり、表示したりします。
次の手順を行うにはスーパーユーザーでなければなりません。
listen ポートモニターサービスを追加するには、次のように入力します。
# pmadm -a -p tcp -s lp -i root -v `nlsadmin -V` -m "`nlsadmin -o /var/spool/lp/fifos/listenS5`"
この例では、SunOS 5.x のリモートマシンからの印刷要求用の listen サービスを追加します。このサービスは SunOS 4.x マシンからの要求については待機しません。
-a |
ポートモニターサービスフラグを追加 (add) する。 |
-p |
tcp をポートモニタータグとして指定する。 |
-s |
lp をポートモニターサービスタグとして指定する。 |
-i |
識別情報を、実行中にポートモニターサービスタグに割り当てられるように指定する。 |
-v |
ポートモニターのバージョン番号を指定する。 |
-m |
nlsadmin により書式化された listen 固有の構成データを指定する。 |
上記の pmadm コマンドには nlsadmin コマンドが組み込まれています。その組み込みコマンドでは、-o は、先入れ先出し (FIFO) 型のフルパス名、または動作中のサーバーがそれを通して接続要求を受け取る名前付き STREAM を指定します。
listen ポートモニターに関連付けられているサービスを表示するには、次のように入力します。
# pmadm -l -p tcp
-l |
ポートモニターサービスフラグを表示する。 |
-p |
tcp をポートモニタータグとして指定する。 |
listen ポートモニターサービスを有効にするには、次のように入力します。
# pmadm -e -p tcp -s lp
-e |
フラグを有効にする。 |
-p |
tcp をポートモニタータグとして指定する。 |
-s |
lp をポートモニターサービスタグとして指定する。 |
listen ポートモニターサービスを無効にするには、次のように入力します。
# pmadm -d -p tcp -s lp
-d |
フラグを無効にする。 |
-p |
tcp をポートモニタータグとして指定する。 |
-s |
lp をポートモニターサービスタグとして指定する。 |
次に、listen ポートモニターの問題を解決するためのヒントを示します。
まず、ネットワークの確認から始めます。
ユーザーからネットワークプリンタに印刷できないという報告がある場合は、ネットワークリスナーに問題があると思われます。まず、印刷サーバーからクライアントに /usr/sbin/ping コマンドを発行し、ネットワークが立ち上がっているかどうかを確認してください。
listen ポートモニターを確認します。
sacadm を使用して、リスナーが起動を開始したことを確認します。pmadm を使用して、印刷サービスが正しく構成されており、さらにサービスが有効であることを確認してください。
印刷サーバーの構成を確認します。
詳細については、第 72 章「印刷時の問題の解決」を参照してください。
SAF は構成ファイルを使用しますが、このファイルは sacadm および pmadm コマンドを使用して変更できます。構成ファイルは手作業で編集する必要はありません。
ファイル名 |
説明 |
---|---|
/etc/saf/_sysconfig |
システムごとの構成スクリプト |
/etc/saf/_sactab |
SAC の管理ファイル。SAC が制御するポートモニターの構成データを内容とする。 |
/etc/saf/pmtag |
ポートモニター pmtag のホームディレクトリ。 |
/etc/saf/pmtag/_config |
存在する場合、ポートモニター pmtag のポートモニターごとの構成スクリプト。 |
/etc/saf/pmtag/_pmtab |
ポートモニター pmtag の管理ファイル。pmtag が提供するサービスのポートモニター固有の構成データを内容とする。 |
/etc/saf/pmtag/svctag |
サービス svctag のサービスごとの構成スクリプト |
/var/saf/log |
SAC のログファイル |
/var/saf/pmtag |
pmtag によって作成されるファイルのディレクトリ。たとえば、ログファイルのディレクトリなど。 |
/etc/saf/_sactab は、次のようになります。
# VERSION=1 zsmon:ttymon::0:/usr/lib/saf/ttymon # tcp:listen::999:/usr/lib/saf/listen tcp #
# VERSION=1 |
サービスアクセス機能のバージョン番号を指定する。 |
zsmon tcp |
ポートモニターの名前。 |
ttymon listen |
ポートモニターのタイプ。 |
:: |
次の 2 つのフラグが設定されているかどうかを示す。 d - ポートモニターを有効にしない。 x - ポートモニターを起動しない。この例では、どちらのフラグも設定されていない。 |
0 999 |
戻りコード値を示す。0 の戻りカウントは、ポートモニターが失敗した場合でも再起動しないことを示す。 |
/usr/lib/saf/ttymon /usr/lib/saf/listen |
ポートモニターのパス名を示します。 |
/etc/saf/pmtab/_pmtab ファイル (/etc/saf/zsmon/_pmtab など) は、次のようになります。
# VERSION=1 ttya:u:root:reserved:reserved:reserved:/dev/term/a:I::/usr/bin/login::9600:ldterm, ttcompat:ttya login¥: ::tvi925:y:#
# VERSION=1 |
サービスアクセス機能のバージョン番号を示す。 |
ttya |
サービスタグを示す。 |
x,u |
次のフラグが設定されているかどうかを指定する。 x - サービスを有効にしないことを意味する。 u - サービス用の utmp エントリを作成することを意味する。 |
root |
サービスタグに割り当てられた ID を示す。 |
reserved |
このフィールドは予約されている。 |
reserved |
このフィールドは予約されている。 |
reserved |
このフィールドは予約されている。 |
/dev/term/a |
TTY ポートパス名を示す。 |
/usr/bin/login |
接続を受信したときに呼び出されるサービスのフルパス名を指定する。 |
:c,b,h,I,r: |
次のフラグが設定されているかどうかを示す。 c - ポート用のキャリアフラグに接続を設定する。 b - ポートが双方向性である (着信トラフィックと発信トラフィックの両方を許可する) と設定する。 h - 着呼が受信された直後の自動ハングアップを抑制する。 I - ポートを初期化する。 r - login: メッセージを出力する前に、ポートから文字を受信するまで、ttymon を待機させる。 |
9600 |
/etc/ttydefs ファイルに定義されている TTY 名を指定する。 |
ldterm,ttcompat |
プッシュする STREAMS モジュールを指定する。 |
ttya login¥: |
表示するプロンプトを指定する。 |
:y/n: |
|
message |
任意のアクティブでない (無効な) 応答メッセージを指定する。 |
tvi925 |
端末タイプを指定する。 |
y |
ソフトウェアキャリアが設定されているかどうかを示す (y/n)。 |
sacadm コマンドはサービスの状態を制御します。次にそれらの状態を示します。
状態 |
意味 |
---|---|
有効 |
デフォルト状態 - ポートモニターを追加したとき、サービスが有効になる。 |
無効 |
デフォルト状態 - ポートモニターを削除したとき、サービスは停止する。 |
特定のサービスの状態を知るには、次のように入力します。
# pmadm -l -p portmon_name -s svctag
sacadm コマンドは、ttymon および listen ポートモニターの状態を制御します。次に示す状態があります。
状態 |
意味 |
---|---|
起動 |
デフォルト状態 - ポートモニターは追加されると自動的に起動される。 |
有効 |
デフォルト状態 - ポートは追加されると自動的にサービス要求を受け付け可能になる。 |
停止 |
デフォルト状態 - ポートモニターは削除されると自動的に停止する。 |
無効 |
デフォルト状態 - ポートモニターは削除されると自動的に提供中であったサービスを続行し、新しいサービスの追加を拒否する。 |
起動中 |
中間状態 - ポートモニターの起動が進行中。 |
停止中 |
中間状態 - ポートモニターは手作業で終了過程に入っているが、まだシャットダウン手続きは完了していない。停止状態になるまでの途中の状態。 |
非動作中 |
アクティブではない状態 - ポートモニターが強制終了された状態。前の動作状態のときに監視していたすべてのポートがアクセス不可になる。外部のユーザーからはポートが無効なのか、非動作状態なのか区別できない。 |
障害 |
アクティブではない状態 - ポートモニターを起動して動作状態を維持できない。 |
特定のポートモニターの状態を知るには、次のように入力します。
# sacadm -l -p portmon_name
ポートは、ポートを制御するポートモニターの状態によって、有効または無効にできます。
状態 |
注記 |
|
---|---|---|
シリアル (ttymon) ポートの状態 |
||
|
有効 |
ttymon ポートモニターはポートにプロンプトメッセージを送り、ログインサービスを提供する。 |
|
無効 |
ttymon が強制終了されているか、無効の場合のすべてのポートのデフォルト状態。このように指定した場合、接続要求を受け取ると、ttymon は「disabled」メッセージを送信する。 |
ネットワーク (listen) ポートの状態 |
||
|
有効 |
listen ポートモニターは、ネットワークを走査してサービス要求がないか調べ、それらの要求に応答してサービスを呼び出す。 |
|
無効 |
listen ポートモニターが強制終了されたか無効の場合、それが制御する listen ポートは自動的に無効になる。このように指定している場合、listen は接続要求を受け取ると「Disabled」メッセージを送信する。 |