Linuxのシャットダウンや再起動のコマンドは色々ある

Linuxのシャットダウン関連のコマンドは、以下の4つがあるようです。

  • /sbin/reboot
  • /sbin/poweroff
  • /sbin/halt
  • /sbin/shutdown

rebootやpoweroffは、入力を簡単にする為のエイリアスで、実際にはhaltやshutdownが呼ばれているようです。
再起動や電源を切る為の引数を省略したものですね。
haltも内部でshutdownを呼んでいるらしいですが、haltとshutdownの関係は良く分かりません。
reboot・poweroff・haltのどれを実行しても、最終的にshutdownが呼ばれると説明しているところも有りましたが、haltにはrebootに相当する引数が見当たりません。

各コマンドを実際に実行してみて、動きを調べてみました。*1

rebootコマンド

システムを再起動。

/sbin/reboot

The system is going down for reboot NOW!

と表示され、再起動します。
以下のコマンドとほぼ同じ動作をします。

/sbin/shutdown -r now

poweroffコマンド

システムを停止し、電源を切る。

/sbin/poweroff

The system is going down for system halt NOW!

と表示され、電源が切れます。
以下のコマンドとほぼ同じ動作をします。

/sbin/shutdown -h now
/sbin/halt -p

haltコマンド

システムを停止する。
-pをつけると電源を切る。

/sbin/halt

The system is going down for system halt NOW!

と表示され、システムが停止されます。
最終的に下記の様に表示されるが、電源は付いたまま。

System halted.

shutdownコマンド

システムを停止する。-rで再起動-hで電源を切る。-rと-hの両方が無い場合はメンテナンスモードに移行する。
shutdownコマンドは、システムをいつ停止するか指定しないといけない。

/sbin/shutdown now

The system is going down to maintenance mode NOW!

と表示され、最終的に下記の様に表示され、シングルユーザモードになります。
シングルユーザモードでは、ログイン済みでコマンドプロンプトが表示されました。

Telling INIT to go to single user mode.
INIT: Going single user
sh-3.1#

その他

/sbin/halt -p
/sbin/shutdown -h now

The system is going down for system halt NOW!

と表示され、最終的に電源が切れます。

/sbin/shutdown -r now

The system is going down for reboot NOW!

と表示され、再起動します。

*1:CentOS5で試しました。