カーネルがロードされたときにinitプロセスが実行されると、トップダウンアプローチで/ etc/inittabファイルが読み取られますか。つまり、ファイルに表示されているとおりに各行が実行されます。
もしそうなら、そして私の読書と理解に基づいて、これはそれが文書化された実行レベルに入り、次にsysinitプロセスを起動することを意味しますか、またはその逆ですか?
たとえば、私が見た一般的な例は次のとおりです。
id:3:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
まず、inittab
の形式は次のようになっていることに注意してください。
Identifier:RunLevel:Action:Command
ここで重要なのはrunlevel
です。次のサンプルコードがあるとします。
a:3::
b:123::
c:23::
d:123::
e:23::
その場合、runlevel
1から始まるさまざまなIDの実行順序は次のようになります。
init 1: b d
init 2: c e
init 3: a
overall: b d c e a
ご覧のとおり、ファイルにリストされている順序で実行されます。ランレベルでグループ化!また、識別子が指定されたランレベルにない場合は、SIGTERM
が発行され、次にSIGKILL
が発行されることを忘れないでください。
特定の順序で処理されるスクリプトではありません。これは、特定のイベントまたは実行レベルに対して実行するスクリプト/コマンドをシステムに指示する構成ファイルです。ファイル内のエントリの順序に違いはなく、実行レベルごとに複数のスクリプトまたはコマンドを使用できます。
「id:3:initdefault:」を表示する最初の行は、ほとんどのフレーバーのデフォルトの実行レベルが3 =>マルチユーザーモードであることをシステムに示しています。
「si :: sysinit:...」行は、システムの初期化時にスクリプト/etc/rc.d/rc/sysinitを実行するようにシステムに指示します(システムの起動時に実行されます)。
inittabを使用している場合は、ファイルのすべてのオプションのリストを取得する必要があります。