Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_all 

名前
inetd — インターネット “スーパーサーバー”
書式
inetd [-di] [-q queuelength] [configuration file]
説明
inetd は通常ブート時に /etc/rc.local によって起動される (rc(8) を参照)。(訳注: ディストリビューションに よって異なる)。 使用している init(8) が任意のデーモンを再起動できる場合、 inetd は (/etc/rc.local ではな く) init から実行できる。 そうすれば、クラッシュした場合に再起動できる。 この場合は inetd が自身をバック グラウンドに送るのを防ぐために -i オプションを使わなければならない。 さもないと init は混乱してしまう。 実行されている間 inetd は定められたインターネットソケットを監視し、接続要求を待つ。 監視しているソケット に対して接続要求が出されると、 そのソケットに対応したサービスを判定し、 サービスを提供するプログラムを起 動する。 サービスプログラムが完了すると、 inetd は再びソケットの監視を行なう。 後述するような例外もある。 inetd を用いれば 1 つのデーモンで 複数のサービスプログラムを起動することができるので、 システムの負荷を軽 減することができる。 オプション inetd に指定できるオプションを示す: -d いくつかのデバッグを有効にして、 inetd をデバッガから実行されたように動作させる。 暗黙のうちに -i も指定される。 -i バックグラウンドにしない。 init(8) から実行するためにある。 -q queuelength ソケットの監視キューの大きさを指定された値に設定する。 デフォルトは 128。 設定 inetd は実行時に設定情報を設定ファイルから読み込む。 デフォルトでは設定ファイルは /etc/inetd.conf であ る。 設定ファイルの各フィールドにはエントリが 1 つなければならない。 各フィールドのエントリはタブやスペー スで区切る。 コメントは行頭に ``#'' をつける。 設定ファイルのフィールドは次の通り: サービス名[@ホスト名] ソケットタイプ プロトコル wait/nowait[.max] ユーザー名[.グループ名] サーバープログラム名 サーバープログラム引き数 Sun-RPC ベースのサービスを記述する場合には、次のエントリを記述する。 サービス名/バージョン[@ホスト名] ソケットタイプ RPC/プロトコル wait/nowait[.max] ユーザー名[.グループ名] サーバープログラム名 サーバープログラム引き数 サービス名 のエントリには、 /etc/services ファイルに記述されているサービス名が記述される。 “内部” サービ ス (後述) については、 名前としてそのサービスの公式名 (すなわち /etc/services 内の最初のエントリ) を指定 しなければならない。 Sun-RPC ベースのサービスを指定するためには、このフィールドは /etc/rpc に書かれた有効 な RPC サービス名でなければならない。 “/” の右の部分が RPC のバージョン番号である。 バージョン番号は、数 字もしくは、バージョンの範囲 (レンジ) で指定する。 範囲を指定する場合は低い番号から高い番号を指定する。 たとえば “rusers/1-3” のように記述する。 サービス名に @hostname という形式の文字列が追加された場合、 inetd は hostname に対応する特定の IP アドレ スからの接続についてのみ、 サービスポートをバインドさせる (全てのアドレスからの接続は listen しない)。 異 なるアドレスに対して使用したいだけ指定できるので、 ``仮想ホスト''サービスを設定できる。 望むだけの数の特 定のアドレスを監視できるが、 カーネルによる制限によって、 inetd がそのポートを特定のアドレスに対して (あ るいは同時に一般のアドレスに対して) 監視するのが禁止されることもある。 hostname はローカルシステムのイン ターフェースに関連づけられた、 解決可能なホスト名または IP アドレスにすべきである。 ソケットタイプ のエントリは、 “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 ソケットにのみ適用できる (その他のソケットでは、この場所は “nowait” でな ければならない)。 もし datagram サーバーが相手に接続したときにソケットを解放するなら、 inetd はソケットに 対するメッセージをさらに受けることができる。 このようなサーバーは “マルチスレッド” サーバーと呼ばれ、 “nowait” エントリを指定しなければならない。 入って来る全ての datagram を処理し、 時間切れまで動作する datagram サーバーは、 “シングルスレッド” サーバーと呼ばれ、 “wait” エントリを指定しなければならない。 comsat(8), (biff(1)), talkd(8) は後者のタイプの datagram サーバーの例である。 tftpd(8) は例外である; これ は疑似接続を確立する datagram サーバーである。 競合を避けるために “wait” が指定されなければならない; サー バーは最初のパケットを読み込み、新たなソケットを作成し、 inetd が新たなサーバーを起動するような接続要求を チェックできるように、 fork して終了する。 オプションのサフィックス (接尾辞) “max” (“wait” または “nowait” からドット``.''で分けられる) は、60 秒の間に最大いくつのサーバーが inetd から起動できるかを指定 する。 省略された場合の、 “max” のデフォルトは 40 である。 user エントリには、サーバーを実行するユーザー名を書く。 これによりサーバーを root よりも低い権限で実行で きる。 ユーザー名に続いてドット``.'' を付加して、 その後ろにグループ名を指定することができる。 これにより サーバーを password ファイルで指定される (プライマリの) グループ ID とは違うグループ ID で実行できる。 グ ループ名が指定され、ユーザーが root 以外だった場合は、 そのユーザの補助グループも (グループアクセスリスト に) 設定されることになる。 サーバープログラム名 のエントリには、ソケットに要求があったとき inetd が起動し、当該エントリのサービスを 提供する サーバープログラムのパス名を指定する。 inetd 内にすでに実装されているサービスを提供する場合に は、サーバープログラムとして “internal” を指定する。 サーバープログラム引数 のエントリには、サーバーを起動する際の引数を、 サーバープログラムの起動文字列であ る argv[0] を含めて記述する。 inetd 内に実装されているサービスを提供する場合には、サーバープログラム引数 として “internal” を指定する。 組み込み関数 inetd は、内蔵ルーチンを用いて簡単なサービスを自身で提供する。 これらのサービスとは “echo”, “discard”, “chargen” (文字生成), “daytime” (人間が読む形式で時間を出力), “time” (機械可読形式の時間。1900 年 1 月 1 日 0 時からの経過秒数を出力) である。 これらのサービスは TCP ベースである。 これらのサービスの詳細につい ては適切な RFC ドキュメントを参照のこと。 SIGHUP を受けとると、 inetd は、設定ファイルを再度読み込む。 設定ファイルを再読み込みするときに、サービス を追加・削除・変更できる。 inetd はファイル /var/run/inetd.pid を作成し、そこにプロセス ID を記録する。
関連項目
comsat(8), fingerd(8), ftpd(8), rexecd(8), rlogind(8), rshd(8), telnetd(8), tftpd(8)
履歴
コマンドは 4.3BSD から登場した。 Sun-RPC ベースのサービスのサポートは、 SunOS 4.1 で提供されたものにな らって作られた。 Linux NetKit (0.17) August 22, 1999 INETD(8)