私はちょうど次の違いを知りたいです。
reboot
init 6
shutdown -r now
どちらが最も安全で最高ですか?
答え1
それらの間に違いはありません。内部的にはまったく同じことをします。
reboot
shutdown
-rスイッチでコマンドを使用します。 shutdownコマンドは、実行中のすべてのプロセスを終了し、すべてのファイルシステムをアンマウントしてから、最後にカーネルにACPI電源コマンドを発行するように指示します。ソースは次のとおりです。ここで発見。以前のディストリビューションでは、再起動コマンドがシグナルをエクスポートしてプロセスを強制的に終了しましたがSIGKILL
(ソースでまだ利用可能で-f
オプションとして呼び出すことができます)、最新のディストリビューションではデフォルトはよりエレガントで初期化しやすいシグナルに設定されましたinit 1 -> shutdown -r
。これにより、デーモンが終了する前にそれ自体がクリーンアップされます。init 6
init
initファイルに書き込まれた生成されたすべてのプロセス/デーモンを(開始順序とは逆の順序で)終了し、最後にshutdown -r now
コマンドを呼び出してシステムを再起動するようにプロセスに指示します。
最近では、両方のコマンドがまったく同じことを行い、終了スクリプトを呼び出してサービス/デーモンを起動するために使用されるinitスクリプトに従うため、大きな違いはありません。reboot -f -r now
以下の場合を除き
なぜ安全ではないの簡単な説明がマンページにありますreboot -f
。
-f, --force すぐに強制停止、電源オフ、再起動。初期化システムに接続しないでください。
編集する:
systemctl
将来のRHELリリースでは、シャットダウン/再起動コマンドを実行するために新しいコマンドを使用する必要があることに言及することを忘れていました。reboot
そしてマンページに記載されているように、shutdown
「互換のみのためのレガシーコマンド」です。そしてこのsystemctl
方法は唯一の安全な方法です。
答え2
Off は以下を指定できるので、より良いオプションです。理由大胆な措置を講じてください。いつもやるべきことです。メッセージは後で記録されます。たとえば、
shutdown -r now 'Kernel upgrade requires reboot'
またできます予定now
再起動 - 再起動時間以外の時間を指定して:
shutdown -r 22:00 'Work around kernel memory leak'
その後、時間が経つにつれて、ユーザーは定期的な通知を受け取り、プロセスはより体系的で専門的になります。
答え3
reboot
FreeBSDではshutdown -r now
。reboot
マニュアルページから:
通常、システムを停止または再起動する必要がある場合、shutdown(8)ユーティリティは、差し迫った終了についてユーザーに事前に警告し、特定のプログラムを完全に終了するために使用されます。