web-dev-qa-db-ja.com

現在、reboot、init 6、およびshutdown -rの違いは何ですか?

違いを知りたいだけです

  • reboot
  • init 6
  • shutdown -r now

そして、どれが最も安全で最高ですか?

106
Rahul Patil

それらに違いはありません。内部的には、まったく同じことを行います。

  • rebootshutdownコマンドを(-rスイッチを指定して)使用します。実行中のすべてのプロセスを強制終了し、すべてのファイルシステムをアンマウントし、最後にカーネルにACPI電源コマンドを発行するように指示するシャットダウンコマンド。ソースは ここにあります です。以前のディストリビューションでは、rebootコマンドはSIGKILLシグナルを発行してプロセスを強制的に終了させて​​いました(まだソースで見つかり、-fオプションで呼び出すことができます)。最近のディストリビューションでは、デフォルトでより優雅になっていますとinitフレンドリーinit 1 -> shutdown -r。これにより、デーモンはシャットダウン前に自分自身をクリーンアップします。

  • init 6は、initプロセスに、生成されたすべてのプロセス/デーモンをinitファイルに書き込まれたとおりに(開始した順序とは逆に)シャットダウンし、最後にshutdown -r nowコマンドを呼び出して、機械

現在、両方のコマンドはまったく同じであり、サービス/デーモンのシャットダウンスクリプトを呼び出すことによってサービス/デーモンを開始するために使用されるinitスクリプトを尊重するため、それほど大きな違いはありません。下記のreboot -f -r nowを除く

マンページから、[reboot -f]が安全でない理由についての簡単な説明があります。

 -f、--force 
即時停止、電源オフ、再起動を強制します。 initシステムに連絡しないでください。

編集:

忘れてしまいましたが、今後のRHELディストリビューションでは、新しいsystemctlコマンドを使用してpoweroff/rebootを発行する必要があります。 rebootおよびshutdownのマンページに記載されているように、これらは「互換性のためにのみ使用可能なレガシーコマンド」です。 systemctlメソッドが唯一の安全な方法になります。

91
Martino Dino

reasonを大幅なアクションに指定できるため、シャットダウンをお勧めします。メッセージは後世のためにログに記録されます。例えば:

shutdown -r now 'Kernel upgrade requires reboot'

再起動時間としてnow以外のものを指定して、scheduled reboot-を実行することもできます。

shutdown -r 22:00 'Work around kernel memory leak'

その後、時間が近づくと、ユーザーに定期的に通知が表示され、プロセスがより秩序正しくプロフェッショナルになります。

9
Mikhail T.

FreeBSDでは、rebootshutdown -r nowの間に違いがあります。 reboot manページから:

通常、shutdown(8)ユーティリティは、システムを停止または再起動する必要がある場合に使用されます。これにより、ユーザーはDoomの差し迫った警告を出し、特定のプログラムを完全に終了します。

5
Marián Černý

従来のuniceでは、rebootshutdown -r nowは大きく異なるコマンドです。一般的な使用方法では、rebootはシングルユーザーモードでのみ安全に使用できます。

shutdown -r nowは、さまざまな* nix間でシャットダウンする標準的な方法であり、一般的に安全に使用でき、機能的にはinit 6と同等です。

init(8)reboot(8)

5
user2619306