なぜ他のバイナリで再起動機能を提供するのですか?

なぜ他のバイナリで再起動機能を提供するのですか?

なぜ他のバイナリで再起動機能を提供するのですか?

shutdown -r

そして

reboot

それともどういう意味ですか?

答え1

必ずしも必要なわけではありませんが、Unixの歴史とバージョンの多様性の両方があります。

該当するマニュアルページから:

  • シャットダウンユーティリティは4.0BSDに表示されます。
  • 再起動ユーティリティはAT&T UNIXバージョン6に表示されます。

シャットダウンはより多様で強力であり、再起動はより親しみやすく覚えやすいです。

shutdownを使用すると、一時パラメータ(5分後に再起動)を指定でき、次のような再起動に加えて多くの操作を実行できます。

  • 実際に終了せずにユーザーを追い出すことができます。
  • システムをシャットダウンするのではなく、省電力モードに切り替えることができます。
  • 再起動せずに簡単に終了できます(haltコマンドに似ています)。
  • システムのユーザーにカスタム警告メッセージを追加できます。

しかし、今システムを再起動したい場合rebootshutdown -r now

答え2

これら2つのコマンドは異なる操作を実行しますが、最終的にお互いを呼び出すことができます。〜らしい同じことをしてください!

reboot実際、ハードウェアの再起動をトリガするためにカーネルが呼び出されます。ただし、システムをシャットダウンする準備ができた場合にのみこれを実行してください。すべてのデーモンとユーザープロセスを停止し、ファイルシステムをアンマウントする必要があります。そのため、システムのランレベルを確認し、0または6でない限り、実際に与えられたコマンドを呼び出しますshutdown

shutdownシステム実行レベルが変更されます。実行レベルの変更(停止するには0に変更、再起動するには6に変更)デーモンの終了、ファイルシステムのマウント解除などのために、/etc/rc0.dまたはrc6.dで複数のスクリプトを実行します。最後に、このスクリプトはhaltorを呼び出しますreboot。今回は、システムが正しい実行レベルにあり、カーネルに再起動(または停止)するように指示します。

答え3

iconoclastが書いたものに加えて、2つのプログラムの間にshutdownis in/sbinrebootis inという大きな違いがあります/usr/bin

これはなぜ重要ですか?私はあなたを言うでしょう。

以下の内容は、/usrシステムが最小限に動作するのに十分にブートされるまで利用可能である必要はありません。伝統的に、別のファイルシステムにマウントされていない最上位ディレクトリ(/bin/etcなど)/sbinは、システムがこの最小有効状態に達したときに使用できると予想されます。このデザインにはいくつかの意味があります。たとえば、/usr/bin選択肢がある場合、プログラムを使用するSysV初期化スクリプトに「stop」句を書くのは悪いスタイルです。/bin/sbin

shutdown常に使用できる重要なユーティリティです。rebootそれは便利なユーティリティです。

関連情報