ランレベル0と6は結果ですか、それとも変換ですか?

ランレベル0と6は結果ですか、それとも変換ですか?

ランレベル0と6は、システムをシャットダウンまたは再起動することを意味します。

コマンドを入力すると、init 0システムがシャットダウンします。

しかし、私の質問は

  1. システムがシャットダウンした場合、なぜなら正常にランレベル0に変更されました
  2. あるいは、現在のランレベルからランレベル0への変更のみをトリガする場合(つまり、システムにランレベル0に行きたいと知らせる場合)、そのランレベルに到達します。後ろに閉鎖?もちろんいいえ、電源が切れると、システムは何もしません。

つまり、システムはランレベル0にありますか?

  • しかし、システムがシャットダウンしています(実行からシャットダウンに切り替えている間)。
  • 後ろにシステムがダウンしていますか(説明の結果、実行レベルに達できませんでした)?

実行レベル6に関する追加の質問:次のブートのいずれの段階でも、システムは実行レベル6になりますか?

私はLinuxの動作(Unixと違う点がある場合)に興味があります。

答え1

initinit(クラシックSVR4スタイル、systemd、runitなどを使用するかどうかにかかわらず)ステートマシンとしてコーディングされます。状態を変更するイベントに応答してのみ操作を実行します。電源投入からシャットダウンへのシステム切り替えは、現在の状態から実行レベル0で定義された状態に変更され、再起動終了も同じで、実行レベル6で定義された状態に変更されます(実際には、これら2つの切り替えはカーネルへ最後の呼び出し以外はほぼ同じですinit

init2番目の質問に答えるために、システムは、カーネルが再起動するために呼び出される時点(返されない)から、次の起動中にカーネルが実行を「init」に渡すまで、「ランレベル6」で動作します。

関連情報