SHUTDOWN(8)

名前
shutdown - システムを閉じて終了させる

書式
shutdown [ -h | -r ] [ -fqs ] [ now | hh:ss | +mins ] [ message ]
reboot [ -h | -r ] [ -fqs ] [ now | hh:ss | +mins ] [ message ]
fastboot [ -h | -r ] [ -fqs ] [ now | hh:ss | +mins ] [ message ]
halt [ -h | -r ] [ -fqs ] [ now | hh:ss | +mins ] [ message ]
fasthalt [ -h | -r ] [ -fqs ] [ now | hh:ss | +mins ] [ message ]

説明
shutdown はシステムの電源停止やリブートの準備をする。いつ停止するかを、時刻また は現在からの待ち時間で指定できる。すべてのユーザーに、シャットダウンの 警告メッセージが送られる。コマンドラインでメッセージが指定されなかった 場合には、 shutdown は送信するメッセージを尋ねてくる。ただし -q オプションをセットした場合には尋ねない。 halt は shutdown -h -q now と同じ。 fasthalt は shutdown -h -q -f now と同じ。 reboot は shutdown -r -q now と同じ。 fastboot は shutdown -r -q -f now と同じ。 何も指定されなかった場合、デフォルトの待ち時間は 2 分になる。 シャットダウンの 5 分前に (あるいはシャットダウンが 5 分以内に行われる 場合には直ちに)、 /etc/nologin ファイルが作成され、「システムがダウンするのでログインはできない」旨の メッセージが書き込まれる。 login(1) プログラムはこれ以降、スーパーユーザー以外のログインを許可しない。また このとき、すべてのユーザーにメッセージが送信される。 シャットダウンの時間になると、 shutdown はすべてのユーザーに通知を出し、 以降 getty(8) プロセスを再生成 (spawn) しないように init(8) に伝える。 その後 /var/log/wtmp ファイルにシャットダウンの時間を書き込み、 他のすべてのプロセスを kill し、 sync(2) を実行してすべてのディスクをアンマウントし、再び sync(2) を実行、少し待ってシステムを終了させるかリブートさせる。 全てのディスクのアンマウントに先立ち、 SIGQUIT シグナルが init プロセスに送られ、これによって shutdown(8) が起動される。こうすれば、 init の古い inode が unlink された場合でもクリーンにアンマウントを行うことができる。 カレントのプロセス ID (PID) が 1 の場合は、 shutdown(8) は永久に停止する。

オプション

-h  システムを停止 (halt) する。リブートしない。 このオプションはシステムの電源を落とすときに用いられる。

-r  システムをリブートする。

-f  高速指定。システムがリブートするとき、 ファイルシステムをチェックしないようにする。 具体的には /fastboot を作成する。このファイルは /etc/rc によって検知（および消去）されるようになっていなければならない。

-q  メッセージ抑制。このオプションが指定されるとデフォルトのブロードキャス トメッセージが用いられる。メッセージの入力を求めるプロンプトをユーザー に出さない。

-s  シングルユーザーモードでリブートする。 具体的には /etc/singleboot を作成する。このファイルは simpleinit(8) によって検知（および消去）されるようになっていなければならない。

ファイル
/etc/rc
/fastboot
/etc/singleboot
/etc/nologin
/var/log/wtmp
/etc/shutdown.conf

設定
設定ファイル /etc/shutdown.conf を用いれば マシンを停止するときの動作を決定することができる。 現在サポートされているファイル形式は非常に単純なものである。 第一行には空白で区切った二つの文字列を記述する。 最初の文字列は HALT_ACTION とし、第二の文字列には 停止時の動作を指定する。以下のオプションが適用できる。

halt
    単にシステムを停止する。デフォルトの動作である。 他のオプションが失敗した場合にもこの動作が行われる。

power_off
    カーネルの電源断機能を利用しようとする。 APM (Advanced Power Management) 機能のあるマシンでのみ利用できる。

programname
    電源を切るために動作させるコマンドを指定する。 最初の文字は "/" でなければならない。 このコマンドはルートファイルシステムだけで (かつリードオンリーで)、 さらにデーモンがない状態で動作する必要がある。

関連項目
umount(8), login(1), reboot(2), simpleinit(8), init(8)

バグ
BSD 版の shutdown と異なり、ユーザーはシャットダウンの通知を一度または二度しか受け取らない。 BSD 版ではこの通知は何度も、しかも「黙示のとき」が近づくにつれ、 ますます頻繁に発送される。 これを仕様であるとみなしている人もいるかもしれない。

著者
このページは、 Peter Orbaek (poe@daimi.aau.dk) によって書かれた shutdown の解説である。