INETD(8)

名称
inetd - インターネット “スーパサーバ”

書式
inetd [-d] [configuration file]

解説
inetd は、ブート時に /etc/rc の中で起動されます。 inetd は起動されると、ソケットを listen() し、接続要求を待ちます。 listen() しているソケットに対して接続要求が出されると inetd は、そのソケットに対応したサービスを 判定し、サービスを提供するプログラムを起動します。プログラムを起動し終ると、 ソケットは再びソケットの listen() を行います (例外もあります。例外については 後述します)。 inetd は、システムの負荷を軽減するために、1 つのデーモンで 複数のサービスプログラムを起動することを許しています。

inetd は、起動時に以下のオプションを指定できます。

-d  デバッグモードにします

実行時に inetd はコンフィギュレーション情報をコンフィギュレーションファイルから読みます。 このファイルは、デフォルトでは /etc/inetd.conf です。 初期化ファイルは、1 フィールド 1 エントリでなければなりません。 各フィールドのエントリはタブやスペースで区切られます。 コメントは、行の最初に ``#'' をつけます。 コンフィギュレーションファイルのフィールドは以下のようなものからなります:
    サービス名
    ソケットタイプ
    プロトコル
    wait/nowait[.max]
    ユーザ名[.グループ名]
    サーバプログラム名
    サーバプログラム引数

Sun-RPC をベースにしたサービスを記述する場合には、以下のエントリを記述します。

    サービス名/バージョン
    ソケットタイプ
    RPC/プロトコル
    wait/nowait[.max]
    ユーザ名.[グループ名]
    サーバプログラム名
    サーバプログラム引数

サービス名 のエントリには、 /etc/services ファイルに記述されているサービス名が記述されます。 “内部” サービス (以下で議論します) については、 そのサービス名はサービスのオフィシャル名 (すなわち /etc/services 内の最初のエントリ) でなければなりません。 ソケットタイプのエントリは、 “stream”, “dgram”, “raw”, “rdm”, “seqpacket” のいずれかである必要があります。それぞれ、ソケットが stream であるか、 datagram であるか、 raw であるか、 reliably delivered message であるか、 sequenced packet socket であるかに対応しています。 プロトコルのエントリは、 /etc/protocols に記述されているプロトコル名が記述されます。 例えば、 “tcp” や “udp” などです。RPC ベースのサービスの場合、 “rpc/tcp” や “rpc/udp” のような指定になります。 wait/nowait エントリは、ソケットタイプとして datagram を指定した場合にのみ有効と なります。

ユーザ／グループエントリは、当該サービスを指定したユーザの権限で提供するように指示 する箇所です。

サーバプログラム名のエントリは、当該エントリのサービスを提供する サーバプログラムを指定します。 inetd 内にすでに実装されているサービスを提供する場合には、サーバプログラムとして “internal” を指定します。

サーバプログラム引数のエントリは、サーバプログラムの起動文字列を記述します。 inetd 内にすでに実装されているサービスを提供する場合には、サーバプログラム引数 として “internal” を指定します。

inetd は、 “echo”, “discard”, “chargen” (文字生成), “daytime” (ユーザリーダブルな時間を出力します), “time” (マシンリーダブルな時間。1900 年 1 月 1 日からの経過秒数を出力します) のサービスをプログラム内に持ちます。 これらのサービスは全て tcp ベースです。

inetd は、 SIGHUP を受けとると、初期化ファイルを読み込みます。また、 inetd は、プロセス生成時に /var/run/inetd.pid ファイルを作成し、そのファイルに自身の プロセス識別子(PID)を出力します。

各フィールドの詳細については、英語版のオンラインマニュアルを参照して下さい。

関連項目
comsat(8), fingerd(8), ftpd(8), rexecd(8), rlogind(8), rshd(8), telnetd(8), tftpd(8)

歴史
inetd コマンドは 4.3BSD から登場しました。 Sun-RPC ベースのサービスのサポートは、 Sun-OS 4.1 が供給されてから それに従って作りました。