違いを知りたいだけです
reboot
init 6
shutdown -r now
そして、どれが最も安全で最高ですか?
それらに違いはありません。内部的には、まったく同じことを行います。
reboot
はshutdown
コマンドを(-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
メソッドが唯一の安全な方法になります。
reasonを大幅なアクションに指定できるため、シャットダウンをお勧めします。メッセージは後世のためにログに記録されます。例えば:
shutdown -r now 'Kernel upgrade requires reboot'
再起動時間としてnow
以外のものを指定して、scheduled reboot-を実行することもできます。
shutdown -r 22:00 'Work around kernel memory leak'
その後、時間が近づくと、ユーザーに定期的に通知が表示され、プロセスがより秩序正しくプロフェッショナルになります。
FreeBSDでは、reboot
とshutdown -r now
の間に違いがあります。 reboot
manページから:
通常、shutdown(8)ユーティリティは、システムを停止または再起動する必要がある場合に使用されます。これにより、ユーザーはDoomの差し迫った警告を出し、特定のプログラムを完全に終了します。