Provided by: manpages-ja_0.5.0.0.20161015+dfsg-1_all
名前
initctl - simpleinit(8) を制御するためのユーティリティ
書式
need [-r] service display-services provide service
概略
initctl プログラムは、システム起動スクリプトの 堅牢さ・拡張性・可読性を向上するためにデザ インされている。 現在では、SysV 形式の起動スクリプトで使われている 複雑で脆い多くのシンボ リックリンクによる方法を使うことなく、 モジュール化した起動スクリプトを書くことができる。 各スクリプトは、それを起動する前に何が必要かを need(8) を使って簡単に宣言できる。
need の説明
need プログラムは、simpleinit(8) に対して service (通常は /sbin/init.d 内のスクリプト) を 開始するように指示し、 その service が使用可能になるまで待たせるためのユーティリティであ る。 service が既に使用可能な場合、再び起動されることはない。 -r オプションは、simpleinit(8) に対して service までのサービスを 「押し戻す (roll back)」(停止する) ように指示する (指定されたサービスは含まない)。 service が指定されない場 合、 全てのサービスを停止する。 よって、-r オプションにより、 システムを部分的または全体的 に順序立ててシャットダウンすることができる。 実行するためには、未だに shutdown(8) プログラ ムが必要とされる。
display-services の説明
display-services として起動された場合、 現在使用可能なサービスのリストと失敗したサービスの リストを 標準出力に書き出す。
provide の説明
provide として起動された場合、 simpleinit(8) に対して親プロセス (呼び出したプロセス) が service という名前のサービスを提供するように指示する。 呼び出したプロセスが正常に (ステー タス 0 で) 終了した場合、 サービスが使用可能であると考えられる。 service のインスタンスは 1 つだけ起動されるので、 他にこのサービスを提供するプログラムはブロックされて失敗する。 provide を使うことにより、 同じ (一般的な) サービスを提供できる複数のプログラムを持つこと ができる (例えば sendmail と qmail は共に mta サービスを提供する)。 ここで、実際にサービス を提供するのは 1 つだけである。 これは設定ファイルをチェックするサービス起動スクリプトで使 うことができる。
終了コード
サービスが正常に起動した場合、 need からの終了コードは 0 である。 サービスが失敗した場合は 1 である。 サービスが使用不能の場合 (つまり、設定ファイルで不可にされている場合) は 2 であ る。 これらの終了コードは、サービス起動スクリプトからの終了コードを反映する。 サービスが正常に停止した場合、 need -r からの終了コードは 0 である。 サービスが停止できな かった場合は 1 である。 サービスが開始できなかった場合は 2 である。 サービスのシャットダウ ンスクリプトは、 (正常な場合の) 0 と (失敗の場合の) 1 しか返さない。 サービスが提供できた場合、provide の終了コードは 0 である。 提供できなかった場合は 1 であ る。 親プロセスが init の子でない場合は 2 である。 このプログラムは、そのサービスを初期化 する 他のサービス提供プログラムをブロックして待たせる。
シグナル
initctl(8) は simpleinit(8) と通信するために SIGUSR1, SIGUSR2, SIGPOLL を使う。 これらのシ グナルを need(8) に送ってはならない。
ファイル
/dev/initctl simpleinit(8) によって作成される制御 FIFO で、 initctl(8) がコマンドを 書き込む。
関連項目
simpleinit(8), init(8) need(8) を使った 新しいブートスクリプトシステムについてのもっと全面的な議論は、 http://www.atnf.csiro.au/~rgooch/linux/boot-scripts/ で閲覧できる。
著者
Richard Gooch (rgooch@atnf.csiro.au)
入手先
Util-Linux パッケージは ftp://ftp.??.kernel.org/pub/linux/utils/util-linux/ から入手可能で ある。