2016/11/21

haltを実行してもSystem haltedで止まり電源が落ちない(halt, shutdown, poweroffの違いまとめ)

photo by winterofdiscontent

いつもお世話になっているITProのLinuxコマンド集に「haltshutdown -h -q now」と書かれていたので、ためしにhaltコマンドを実行してみたところ、なぜか「System halted」で止まってしまい電源が落ちてくれなかった。

ちなみにshutdown -h nowの場合は、電源まで落ちてくれた。

疑問に思ったので、いろいろ調べてみた。


シャットダウン関係のコマンド


シャットダウン関係のはコマンドには、以下の3つがある。

  • poweroff
  • halt
  • shutdown


poweroffコマンド


OS(システム)をシャットダウンして電源を切るコマンド。
poweroff [OPTIONS...]

実行することで、PSU(Power Supply Unit: 電源ユニット)にACPIコマンドを送って電源を落とさせる。
ACPIは「Advanced Configuration and Power Interface」の略で、PCの電源制御に関する規格のひとつ。


haltコマンド


OS(システム)をすぐにシャットダウンするコマンド。
halt [OPTIONS...]

実行することで、すべてのプロセスを終了させ、CPUを止める
システムをシャットダウンするだけのコマンドのため、実行後は「System halted(システム停止)」というメッセージが表示される。
ただし、電源はついたままで落ちない

オプションに「-p」をつけると電源も落ちる。


shutdownコマンド


システムのシャットダウンや再起動をするコマンド。
shutdown [OPTIONS...] [TIME] [WALL...]

poweroffコマンドに似ているけど、シャットダウンスクリプトを実行して電源を落とす
オプションに「-r」をつけると再起動、「-h」をつけると電源を落とす。
また、実行時には「いつ実行するか」を指定する必要がある。(例: shutdown -h now)



結局、電源を落とすにはどうすれば良いのか?


電源を落とすコマンドは、以下のとおりだ。

poweroff  =  shutdown -h now  =  halt -p

3つのコマンドとも「電源を落とす手順・方法」が違うだけで、同じ結果が得られる。
一般的には「shutdown -h now」が使われる

CentOS 7.2で確認したところ、poweroff、halt、shutdownのすべてがsystemctlにリンクが貼られていた
# cd /usr/sbin
# ls -la | grep systemctl
lrwxrwxrwx.  1 root root    16 10月 27 10:55 halt -> ../bin/systemctl
lrwxrwxrwx.  1 root root    16 10月 27 10:55 poweroff -> ../bin/systemctl
lrwxrwxrwx.  1 root root    16 10月 27 10:55 reboot -> ../bin/systemctl
lrwxrwxrwx.  1 root root    16 10月 27 10:55 runlevel -> ../bin/systemctl
lrwxrwxrwx.  1 root root    16 10月 27 10:55 shutdown -> ../bin/systemctl
lrwxrwxrwx.  1 root root    16 10月 27 10:55 telinit -> ../bin/systemctl



参考サイト





以上

written by @bc_rikko

0 件のコメント :

コメントを投稿