System V スタイルの init プログラムがカーネルによって開始されると、構成ファイル /etc/inittab が読み取られます。このファイルは以下を定義します:
- init がデフォルトでシステムを起動するランレベル
- システムを初期化するために init が実行するプログラム
- ランレベルごとに標準プロセスの初期化が開始されます
- 各ランレベルを実装するために init が実行するスクリプト
デフォルトでは、ほとんどのサーバーはランレベル 3 で起動されますが、ほとんどのワークステーションはランレベル 5 で起動されます。このデフォルトは、代替ランレベルを指定するオプションを init に渡すようにブートローダーを構成することにより、ブート時にオーバーライドできます。
/etc/inittab 行の構文
/etc/inittab ファイルの行には、コロンで区切られた 4 つのフィールドがあります。
id:rstate:action:process
– 1 つ目は一意の ID です。他の行に同じ 1 または 2 文字が含まれていない限り、値が何であれ問題ではありません。
– 2 番目は、この行を制限するランレベルのリストです。何もリストされていない場合、デフォルトのランレベルに関係なく行が処理されます。
– 3 番目のフィールドは実行されるアクションです (通常は 4 番目のフィールドで指定されたコマンドを実行します)。
次の表では、inittab エントリのフィールドについて説明します。
フィールド | 説明 |
---|---|
ID | エントリの一意の識別子です。 |
rstate | このエントリが適用される実行レベルを一覧表示します。 |
アクション | プロセス フィールドで指定されたプロセスの実行方法を識別します。可能な値には、sysinit、boot、bootwait、wait、および respawn が含まれます。その他のアクション キーワードの説明については、inittab(4) を参照してください。 |
プロセス | 実行するコマンドまたはスクリプトを定義します。 |
デフォルトのランレベル
/etc/inittab の initdefault 行は、その情報が与えられていない場合にどのランレベルに移動するかを init に指示します。この行は、実行するコマンドがないという点で特別です (他のすべてのコマンドは 4 番目のフィールドに値があります):
/etc/inittab ファイルのサンプル
以下は、CentOS 6 システムの /etc/inittab ファイルのサンプルです。
# cat /etc/inittab # inittab is only used by upstart for the default runlevel. # # ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM. # # System initialization is started by /etc/init/rcS.conf # # Individual runlevels are started by /etc/init/rc.conf # # Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf # # Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf, # with configuration in /etc/sysconfig/init. # # For information on how to write upstart event handlers, or how # upstart works, see init(5), init(8), and initctl(8). # # Default runlevel. The runlevels used are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:3:initdefault:
/etc/rc.d/rc.sysinit ブート スクリプト
/etc/rc.d/rc.sysinit script は、起動時に init プログラムによって呼び出されます。このスクリプトは、実行レベルに依存しない初期セットアップを実行します。以下は、rc.sysinit スクリプトによって行われる処理の例です:
- USB、パラレルまたはシリアル接続デバイスなどの周辺ハードウェアが構成されている
- /etc/sysctl.conf で指定されたカーネル パラメータは、実行中のカーネルに適用されます
- ホスト名を設定します
- ルート ファイル システムがチェックされ、読み書き可能で再マウントされます
- RAID および LVM デバイスがアクティブ化されている
- スワップ ファイルとパーティションがアクティブ化されている
- アクティブ化されたディスク クォータ