なぜ異なるバイナリでリブート機能が必要なのですか?
shutdown -r
そして
reboot
それとも、何か違うのですか?
なぜ異なるバイナリでリブート機能が必要なのですか?
shutdown -r
そして
reboot
それとも、何か違うのですか?
回答:
必ずしも両方が必要なわけではありませんが、Unixの歴史とバージョンの多様性のため、両方が必要です。
それぞれのmanページから:
シャットダウンはより汎用的で強力であり、再起動はより使いやすく覚えやすいものです。
shutdownを使用すると、一時的な引数を指定して(たとえば5分で再起動する)、再起動以外にも次のような多くのことができます。
ただし、今すぐシステムを再起動するだけの場合は、を入力するreboot
よりも簡単ですshutdown -r now
。
shutdown
現在デフォルトとして使用されています。shutdown -h
特にデータセンターのどこかにあるサーバーではなく、これまでにシャットダウンのヘルプを取得しようとしないでください。
2つのコマンドは異なる動作をしますが、互いに呼び出しを行うことになります。そのため、同じことをしているようです。
reboot
カーネルを呼び出して、実際にハードウェアの再起動をトリガーします。ただし、システムがシャットダウンの準備ができている場合にのみこれを行います-すべてのデーモンとユーザープロセスを停止し、ファイルシステムをアンマウントする必要があります。したがって、システムランレベルをチェックし、0または6でない場合、実際に起動しますshutdown
あなたのためのコマンド。
shutdown
システムのランレベルが変更されます。(再起動のための停止のために0または6に)ランレベルの変更は、/etc/rc0.dまたはrc6.dでスクリプトをたくさん走るなどシャットダウンデーモン、アンマウントファイルシステム、その最後にこれらのスクリプトを呼び出しますhalt
かreboot
-この時間は、システムがにあります正しいランレベルであり、カーネルに再起動(または停止)するよう指示します。
iconoclastが書いたものに加えて、2つのプログラムには重要な違いがあります:shutdown
is in /sbin
、while reboot
in /usr/bin
です。
なぜこれが重要なのですか?言いますよ。
/usr
その下にあるものは、システムが最低限の機能を果たすのに十分なほどシステムが起動されるまで利用可能である必要がないものです。従来は別々のファイルシステムにマウントされることはありませんトップレベルのディレクトリは- 、/bin
、/etc
、/sbin
など-システムがこの最低限便利な状態に達している間に利用可能であることが予想されます。この設計にはさまざまな意味があります。たとえば、またはに/usr/bin
代替がある場合にプログラムを使用するSysV initスクリプトの「stop」節を記述するのは悪いスタイルです。/bin
/sbin
shutdown
は、常に利用可能なキーユーティリティです。reboot
便利なユーティリティのみです。
reboot
である/sbin
(はsysvinit付き)のDebianとUbuntu(成り上がり付き)で。