1. shutdown
shutdown コマンドはシステムを安全にシャットダウンします。 電源を直接遮断して Linux をシャットダウンするユーザーもいますが、これは非常に危険です。 Linux は Windows とは異なり、バックグラウンドで多数のプロセスが実行されているため、強制的にシャットダウンするとプロセスのデータが失われ、システムが不安定な状態になり、一部のシステムではハードウェア機器が損傷する可能性があります。
システムをシャットダウンする前に shutdown コマンドを使用すると、システム管理者はログインしているすべてのユーザーにシステムがシャットダウンされることを通知します。
そして、ログインコマンドは凍結されます。つまり、新しいユーザーはログインできなくなります。直接シャットダウンしたり、シャットダウンを一定時間遅らせたり、再起動することも可能です。これは、すべてのプロセスがシステムから送信されたシグナルを受信するという事実によって決まります。これにより、vi などのプログラムに現在編集中のドキュメントを保存する時間が与えられ、メールやニュースなどのプログラムは正常に終了できるようになります。
Shutdown は、init プログラムにシグナル [signal] を送信し、ランレベルの変更を要求することでジョブを実行します。
ランレベル 0 はシステムをシャットダウン [停止] するために使用され、ランレベル 6 はシステムを再アクティブ化 [再起動] するために使用され、ランレベル 1 はシステムを管理作業を実行できる状態にするために使用されます。これがデフォルトです。 -h がないと仮定すると、シャットダウン用の -r パラメータはありません。シャットダウン (停止) または再起動 (リブート) プロセス中にどのようなアクションが実行されたかを理解するには、このファイル /etc/inittab でランレベル関連の情報を確認できます。
shutdown パラメータの説明:
[-t] は、他のランレベルに変更する前にシャットダウンする時間を init に指示します。
[-r] 電卓を再起動します。
[-k] は実際にはシャットダウンしませんが、各ログイン [login] に警告信号を送信するだけです。
[-h] シャットダウン[停止]後に電源を切ります。
[-n] 初期化する必要はありませんが、自分でシャットダウンしてください。このオプションの使用はお勧めできません。また、このオプションの結果が必ずしも期待どおりになるとは限りません。
[-c] 現在のプロセスをキャンセル 現在実行中のシャットダウンプロセスをキャンセルします。もちろん、このオプションには時間パラメータはありませんが、それを説明するメッセージを入力することができ、このメッセージは各ユーザーに送信されます。
[-f] 電卓を再起動するときに fsck を無視します [reboot]。
[-F] 電卓を再起動するときに fsck を強制します [reboot]。
[-time] シャットダウン[shutdown]までの時間を設定します。
2. 停止は最も単純なシャットダウン コマンドです
実際、停止は shutdown -h を呼び出すことです。 halt が実行されると、アプリケーション プロセスが強制終了され、sync システム コールが実行され、ファイル システムの書き込み操作が完了した後にカーネルが停止されます。
パラメータの説明:
[-n] 同期システムコールを防止します。これは、fsck でルートパーティションにパッチを適用した後に、パッチが適用されたスーパーブロックを古いバージョンのスーパーブロック [スーパーブロック] でカーネルが上書きするのを防ぐために使用されます。
[-w] は実際の再起動やシャットダウンではなく、wtmp [/var/log/wtmp] レコードを書き込むだけです。
[-d] wtmp レコードを書き込みません [オプション [-n] に含まれます]。
[-f] shutdown を呼び出さずに強制的にシャットダウンまたは再起動します。
[-i] シャットダウン (または再起動) する前に、すべてのネットワーク インターフェイスをオフにします。
[-p] このオプションはデフォルトのオプションです。シャットダウン時にpoweroffを呼び出すだけです。
3. 再起動
再起動の作業プロセスは停止とほぼ同じですが、停止はシャットダウンするのに対し、ホストを再起動します。そのパラメータは halt に似ています。
4. init
init はすべてのプロセスの祖先であり、そのプロセス番号は常に 1 であるため、init に TERM シグナルを送信すると、すべてのユーザー プロセス、デーモン プロセスなどが終了します。シャットダウンではこのメカニズムが使用されます。 init は 8 つのランレベル (ランレベル) を定義します。init 0 はシャットダウン、init 1 は再起動です。 init については議論が長くなる可能性があるため、ここでは触れません。また、init の実行レベルを変更できる telinit コマンドもあります。たとえば、telinit -iS ではシステムをシングルユーザー モードに移行できますが、シャットダウンを使用した場合の情報と待ち時間は取得できません。
複数の Linux シャットダウン コマンドの詳細な説明と関連記事については、PHP 中国語 Web サイトに注目してください。