Centos 5などのSysV init実行レベルを使用するシステムでは、OSの起動時に、/etc/inittab
で定義された実行レベルに直接移行しますか?
init
コマンドを使用して実行レベルを変更した場合、現在の実行レベルの強制終了スクリプトが実行されてから、新しい実行レベルの起動スクリプトが実行されますか?
たとえば、実行レベル3でinit 1
と入力した場合、/etc/rc.d/rc3.d
のkillスクリプトが実行され、実行レベル1に入ると、/etc/rc.d/rc1.d
の起動スクリプトが実行されますか?
はい、SysVinitは、他のレベルのスクリプトを見ることなく、起動時に選択された実行レベルに直接進みます。 runlevel
コマンドを使用して、ランレベルの履歴を表示できます。最初の起動時に、「前の」ランレベルが「N」として表示されます。ランレベルを変更すると、以前のランレベルと現在のランレベルが表示されます。
ランレベルを切り替えるときは、最初にそれらの違いを調べます。現在のレベルにリストされているが新しいレベルにはリストされていないサービスは、最初にkillスクリプトを使用して強制終了され、次に新しいレベルにリストされているが古いレベルにはリストされていないサービスが実行されます。両方の実行レベルに存在するサービスは変更されません。
たとえば、ランレベル3から5に切り替えると、通常、いくつかの処理(ディスプレイマネージャーなど)が開始されますが、何も強制終了されません。 5から1に切り替えると、かなりの数の処理が強制終了され、1つ(単一のユーザーインターフェイスコンソールマネージャーなど)が実行される可能性があります。