図1 /etc/inittabファイルの例。
図1 /etc/inittabファイルの例。
[画像のクリックで拡大表示]

 initは,LinuxなどのUNIX系OSにおいて,他のすべてのプロセスを起動するプロセスであり,デーモン・プログラムとして動作する。言い換えれば,システム起動時に最初に立ち上がるプロセスがinitである。そのため,プロセスIDは必ず1になる。プロセスIDは,「ps ax」コマンドなどを用いて確認できる。

 Linuxにおいては,カーネルがディスクから読み込まれてデバイス・ドライバの初期化処理を終えた直後に,/sbin/initとして起動される。initは/etc/inittabファイルに記述されたプロセスを順番に起動する。inittabには,システムの動作状態を規定するラン・レベルごとに処理内容が記述されている。

 inittabでは,8種類の処理を指定できる。処理は主に,プロセスを起動するものと,ランレベルを変更するものに分類できる。例えば,「respawn」は,指定されたプロセスを起動し,終了した場合は再起動する。「wait」は,指定されたプロセスを起動し,その終了を待つ。「sysinit」はブート時にのみ実行される。ランレベルを移行するには,「initdefault」や「once」が利用できる。

 inittabで指定される典型的な内容は次の通り。ネットワークの初期化やファイル・システムのマウントなどの初期化処理を実行するシステム初期化スクリプト(rc.sysinit)から始まり,ログイン・プロンプトの表示,もしくは,X Window systemの起動とログイン表示に至るまでの処理が記述されている(図1)。

 例外もある。GNU GRUBなどのブート・ローダーにはカーネルが呼び出す最初のプログラムを指定できる。この機能を用いると,initを飛ばして直接必要なプログラムを起動することもできる。