それらに違いはありません。内部的には、まったく同じことを行います:
-
reboot
shutdown
を使用 コマンド (-r スイッチを使用)。 shutdown コマンドは、実行中のすべてのプロセスを強制終了し、すべてのファイル システムをアンマウントし、最後にカーネルに ACPI 電源コマンドを発行するように指示するために使用されます。ソースはここにあります。古いディストリビューションでは、再起動コマンドはSIGKILL
を発行してプロセスを強制的に終了させていました シグナル (まだソースにあり、-f
で呼び出すことができます) オプション)、最近のディストリビューションでは、より優雅で初期化に適したinit 1 -> shutdown -r
にデフォルト設定されています .これにより、シャットダウン前にデーモンが自分自身を確実にクリーンアップします。 -
init 6
init
に伝えます 初期化ファイルに記述されているように (開始した順序とは逆の順序で) 生成されたすべてのプロセス/デーモンをシャットダウンし、最後にshutdown -r now
を呼び出すプロセス マシンを再起動するコマンド
今日では、両方のコマンドがまったく同じことを行うため、大きな違いはありません。サービス/デーモンのシャットダウン スクリプトを呼び出すことで、サービス/デーモンを開始するために使用される init スクリプトを尊重します。 reboot -f -r now
を除く 下記のとおり
なぜ reboot -f
が 安全ではありません:
-f, --force Force immediate halt, power-off, reboot. Don't contact the init system.
編集:
言い忘れましたが、今後の RHEL ディストリビューションでは、新しい systemctl
を使用する必要があります poweroff/reboot を発行するコマンド。 reboot
のマンページに記載されているとおり と shutdown
それらは「互換性のためにのみ利用可能なレガシーコマンド」です。そして systemctl
メソッドのみが安全です。
理由を指定できるため、シャットダウンが望ましい 抜本的な行動のために - あなたが常に行うべきこと.メッセージは後世のためにログに記録されます。例:
shutdown -r now 'Kernel upgrade requires reboot'
スケジュールを実行することもできます 再起動 -- now
以外を指定 再起動時間として:
shutdown -r 22:00 'Work around kernel memory leak'
そうすることで、ユーザーは時間が近づくにつれて定期的に外出を促す通知を受け取ります。このプロセスは、より整然としたプロフェッショナルなものになります。
従来のユニバースでは、reboot
と shutdown -r now
大きく異なるコマンドです。通常の使用法では、reboot
シングル ユーザー モードでのみ安全に使用できます。
shutdown -r now
異なる *nix 間でシャットダウンする標準的な方法であり、一般的に使用する方が安全であり、機能的には init 6
と同等です .
init(8)reboot(8)