SHUTDOWN(8)

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

書式
/sbin/shutdown [-t sec] [-rkhncf] time [warning-message]

説明
Shutdown はシステムを安全に終了させる。 ログインしている全てのユーザにはシステムが終了する旨が通知され、 また、新たなlogin(1)プロセスを生成する事は出来なくなる。 システムを直ちに終了させる事もでき、またある時間の後に終了させる事も出来る。 実行中の全てのプロセスに対しては、先ずSIGTERMシグナルを送り、 システムを終了する事を通知する。 こうして、vi(1)等のプログラムが現在編集中のファイルを保存し、 メイルやニュースを扱うプログラムが正常に終了するための余裕が与えられ る。 Shutdownはinitプロセスにシグナルを送りrunlevelの変更を 依頼する事によりその仕事をする。 Runlevel 0はシステムを停止するために、 runlevel 6はシステムをリブートするために用いられる。 またrunlevel 1はシステムの管理業務が行なえる状態 (シングルユーザモード)にするために用いられる; shutdownに-h及び-rのいずれのフラッグも与えられなかった 場合のディフォルトはこのランレベルである。 システムの停止又はリブート時にどのような動作がなされるかは、 /etc/inittabファイル中のそれぞれのrunlevelsの適切な エントリーを参照せよ。

オプション

-t sec
    他のrunlevelに移行する際、 警告シグナルを送ってからsec秒待った後にkillシグナルを送る様 initに指示する。

-k  実際にはシャットダウンを行なわない;ログイン中のユーザ全員へのメッセージ の送付のみ行なう。

-r  シャットダウン後リブートする。

-h  シャットダウン後システムを停止する。

-n  [価値は下がった] initにシャットダウンを依頼するのではなく、 自力でシャットダウンを行う。 このオプションの使用はなるべく避けるように。 使用しても望んだ結果が得られるとは限らない。

-f  `fast'リブートを行なう。

-c  既に実行中のシャットダウンをキャンセルする。 当然ながら、このオプションと同時にtimeを指定する事は出来ない。 しかし、コマンドライン上に説明のためのメッセージを入力し、 ログイン中の全てのユーザに送る事は出来る。

time
    シャットダウンする時刻。

warning-message
    ユーザ全員に送られるメッセージ。

time引数は様々な書式で指定することが出来る。 一つは、hh:mmという書式を用いて絶対時間で与える方法である。 ここで、hhは時(数字一つ又は二つ)、mmは分(数字二つ)を表す。 いま一つは、+mという書式によりm分の待機後に シャットダウンするよう指示する方法である。 nowは+0のエイリアスである。

-fフラッグは`reboot fast'を表す。 この場合は単に、システムが再起動された時にテストされる /fastboot というアドバイス的なファイルが作られる。 ブート用rcファイルは、このファイルが存在するかを調べ、システムが適切な方法で シャットダウンされたのでfsck(1)を起動する必要がないとの判断を下す事が できる。 ファイルシステムのチェックをスキップした後は、 /fastbootファイルはブートプロセスにより削除されなくてはならない。

-nを用いた場合、shutdownはinitを呼び出さずに 全てのプロセスを自分自身でkillし、 /etc/rc.d/rc.halt fast(若しくは rc.reboot)を起動する。 また、同じ働きをするrc.0及びrc.6ファイルが存在するかも検査する。 このスクリプトがエラーを返したり、 (例えばスクリプトが存在しなかった等の理由で)起動自体が出来なかった場合、 shutdown はquota及びaccountingを停止し、 swappingを停め、全てのファイルシステムをunmountする。

アクセス制御
/etc/inittab中に適切なエントリーを作成しておく事により、 マジックキーCTRL-ALT-DELを押すとinit(8)が Shutdownを起動する様に設定することもできる。 しかしこれでは、コンソールのキーボードに触る事の出来る人なら誰でもシステムを シャットダウンできてしまう。 これを避けるため、 shutdownには、起動を許可されたユーザが 仮想コンソールのいずれかからログインしているかをチェックする機能がある。 shutdownがinitから起動された場合は、shutdownは /etc/shutdown.allowファイルが存在するかどうかを調べ、 そこに記されたログイン名を仮想コンソールからログインしている人 のリスト(/var/run/utmpから分かる)と比較し、 許可を受けたユーザの中の一人かor rootがログインしている場合のみ シャットダウンを続行する。 そうでない場合は

shutdown: no authorized users logged in

というメッセージを(実在の)システムコンソールに出力する。 /etc/shutdown.allowファイルには、一行にユーザを一人記入する。 空行及び(行頭に#を付けた)コメント行があっても良い。 現在はユーザを32人しか記入しておけないという制限がある。

ファイル
/fastboot
/etc/inittab
/etc/rc.d/rc.halt
/etc/rc.d/rc.reboot
/etc/shutdown.allow

バグ
バグではないが、多くのユーザがtime引数を与えるのを忘れて しまい、shutdownの出すエラーメッセージに悩んでいる。 time 引数は必ず必要である; 全シャットダウンの内90パーセントはtime引数はnowだろう。

著者
Miquel van Smoorenburg, miquels@cistron.nl

関連項目
fsck(8), init(1), halt(8), reboot(8)

翻訳者
古高和禎 <furutaka@Flux.tokai.jaeri.go.jp>