xinetd -
拡張されたインターネットサービスデーモン
xinetd [
options]
xinetd
は、
inetdと同じ機能を提供する。
すなわち、インターネットサービスを提供するプログラムを起動させる。
インターネットサーバがシステムの初期化時に起動し、接続要求があるまで
休眠する代わりに、
xinetd
はデーモンプロセスのみを起動させ、
設定ファイルに記載された全てのサービスに対応したポートをリッスンする。
(リッスンしているポートの一つに)要求があったときに、
xinetd
は適切なサーバを起動する。このような管理を行う事から、
xinetd は(
inetd と同様に)
スーパーサーバとも呼ばれる。
xinetd
の設定ファイルに記載されたサービスは、2つのグループに
分けられる。1つ目は
マルチスレッド
と呼ばれ、新しい接続要求がある度に新しいサーバプロセスをフォークする
必要がある。新しいサーバが新しい接続を処理する。
このようなサービスの場合、新しいサーバーをつくる事ができるように
xinetd
は新しい要求をリッスンしつづける。
一方、2つ目のグループは、一つのサービスデーモンがすべての新しい
接続要求を処理する。このようなサービスは
シングルスレッド
と呼ばれ、
xinetd
はサーバが終了するまで新しい要求の受付を中断する。
このグループのサービスは通常データグラム上のものである。
今までは、スーパーサーバの存在理由は、ほとんどの生存時間を休眠している
多くのプロセスによるシステムリソースのフォークを避けて節約することにあった。
xinetd
はこの機能を満たすだけでなく、スーパーサーバの概念を利用し、
アクセスコントロールやログ等の機能を提供する。さらにその上、
xinetd は
/etc/services
に記載されているサービスに制限されない。
したがって、だれでも特殊な目的のサービスを起動させるために
xinetd を利用できる。
- -d
- デバッグモード。これは、多くのデバッグ出力を行なう。xinetd
上で
デバッガを使用可能にする。
-
-syslog syslog_facility
- このオプションは指定された
syslog
機能分類(facility)を利用して、
xinetdからの出力を syslog
で記録する。
以下の機能分類がサポートされている。
daemon, auth, user, local[0-7]
(それぞれの意味は
syslog.conf(5)
で確認のこと)。
このオプションは、デバッグモードでは無効である。
デバッグモードでは、すべての関連するメッセージは端末に送られる。
-
-filelog logfile
-
xinetdからの出力は指定されたファイルに保存される。
出力は終始ファイルに追加される。
(指定された名前の)ファイルが存在しない場合は、新しく作成される。
このオプションは、デバッグモードでは無効である。
デバッグモードでは、すべての関連するメッセージは端末に送られる。
-
-f config_file
-
xinetd
が設定に使用するファイルを指定する。デフォルトでは
/etc/xinetd.conf
が使用される。
-
-pidfile pid_file
- プロセス ID
はファイルに記述される。このオプションは、デバッグモードでは
無効である。
- -stayalive
- サービスが一つも指定されていなくても、xinetd
に動作しつづけるよう命令する。
-
-limit proc_limit
- このオプションは
xinetd
が、同時に動作させられるプロセス数の上限を定める。
プロセステーブルのオーバーフローを防止する目的がある。
-
-logprocs limit
- このオプションはリモートのユーザ
ID
取得の為に動作させるサーバ数の、
同時に動作する上限を定める。
- -version
- xinetd
にバージョン情報を表示させる。
- -inetd_compat
- 標準的な xinetd
の設定ファイルに加え、
/etc/inetd.conf
も追加で読み込むようにする。
/etc/inetd.conf は標準的な xinetd
の設定ファイルの後に読み込まれる。
-
-cc interval
- このオプションは
xinetd
の内部状態の定期的な整合性チェックを
interval 秒毎に
行なう。
syslogと
filelogオプションは相互に排他的である。
どちらも設定されていない場合、デフォルトではsyslogの機能分類
daemon を利用する。
xinetd
のメッセージと、関連するサービスによるメッセージを混同しないよう
気をつけること。後者は設定ファイルによって指定された場合にのみログが残る。
xinetd
は一定のシグナルを受け取った時に、一定の動作をする。
特定のシグナルに関連した動作は、
config.hを変更し、リコンパイル
する事で再定義できる。
- SIGHUP
-
SIGHUP
は再設定を行なわせる。これは、設定ファイルを再読み込みし、
使用可能でなくなったサービスのサーバを停止する。
実行中のサーバに対しては、再びアクセスコントロールがなされ、
接続元、アクセス時間、サーバの実行数がチェックされる。
サーバ実行数の制限値が低くなった場合には、制限を満たすためにいくつかの
任意のサーバが
killされる。
これは、接続元・アクセス時間のチェックに失敗したサーバを
終了させた
後に行われる。
また、 INTERCEPT
フラグが新規に設定された場合、そのサービスのために動作中のサーバは
すべて停止される。
この目的は、再設定の後に、アクセス制御基準に合わないアドレスからの
パケットを受け取る事が可能な動作中のサーバがないことを確実にするため
である。
- SIGQUIT
- はプログラムを終了させる。
- SIGTERM
- は
xinetdを終了する前にすべての起動しているサーバを終了する。
- SIGUSR1
- は内部状態をダンプさせる(デフォルトのダンプファイルは
/tmp/xinetd.dump
であり、ファイル名を変更したい場合には、
config.h の内容を
変更し、再コンパイルする)。
- SIGIOT
- はプログラムが利用しているデータ構造に問題がないかを確認するために
内部の一貫性チェックを行なわせる。
チェックが終了すると、
xinetd
は、チェックが成功したかあるいは失敗したかのメッセージを出力する。
再設定時、ログファイルは一旦閉じられ、再び開かれる。これは古いログファ
イルの削除を許可する。
- /etc/xinetd.conf
- デフォルト設定ファイル
- /var/run/xinetd.dump
- デフォルトダンプファイル
inetd(8),
xinetd.conf(5),
xinetd.log(5)
Panos Tsirigotis, CS Dept, University of Colorado, Boulder Rob Braun
zy-net-d (訳注:
ザイ-ネット-ディー)