poweroff – システムを停止して電源を切るコマンド

コマンドリファレンス

poweroff コマンドは、Linuxシステムを停止させたうえで電源をオフにするためのコマンドです。
サーバーやPCを安全にシャットダウンするときに利用されます。

構文(Syntax)

poweroff [オプション]

主なオプション一覧

オプション説明使用例
(なし)システムを停止して電源を切るsudo poweroff
-f, --forceinitシステムを介さず即座に電源を切る(ファイルシステムが正しくアンマウントされない)sudo poweroff -f
-n, --no-sync電源を切る前にディスクの同期(sync)を行わないsudo poweroff -n
-d, --no-wtmpwtmp(ログイン履歴)にシャットダウン記録を書かないsudo poweroff -d
-w, --wtmp-onlywtmpへの記録だけ行い、実際には電源を切らないsudo poweroff -w
--no-wall全ユーザーへの通知(wall)を送らないsudo poweroff --no-wall
--halt電源を切らず停止(halt)するsudo poweroff --halt
--reboot電源を切らず再起動するsudo poweroff --reboot

SysV時代に使われていた -h オプションは、systemd環境の poweroff には存在しませんman 8 poweroff にも記載がなく、指定してもエラーにならないまま通常の電源オフが実行されるため、意図した挙動と食い違う点に注意してください。停止だけしたい場合は --halt を使います。

実行例

通常の電源オフ

sudo poweroff

(システムが安全に停止され、電源が切れます)

強制的に電源オフ

sudo poweroff -f

(すぐに電源が切れるため、データ消失の危険あり)

電源を切らずに停止する(–halt)

sudo poweroff --halt

(システムを停止しますが、電源は入ったままになります。halt コマンドを実行した場合と同じ動作です)

systemctl poweroff との関係

systemdを採用している現在のディストリビューション(Ubuntu、Debian、RHEL系など)では、poweroffsystemctl へのシンボリックリンクです。実体が同じなので、poweroffsystemctl poweroff はどちらを使っても動作は変わりません。

$ ls -l /usr/sbin/poweroff
lrwxrwxrwx 1 root root 16 /usr/sbin/poweroff -> ../bin/systemctl

halt / reboot / shutdown も同様に systemctl へのリンクになっています。SysV時代のコマンド名は互換性のために残されている、という位置づけです。

systemctl poweroff -i(インヒビターを無視する)

systemdには「シャットダウンを一時的に止める」インヒビター(inhibitor)という仕組みがあります。パッケージ更新中や重要な処理の実行中に電源が落ちるのを防ぐもので、有効なインヒビターがあると systemctl poweroff は待たされたり中断されたりします。

現在のインヒビターは systemd-inhibit --list で確認できます。

$ systemd-inhibit --list
WHO                          UID USER PID  COMM            WHAT     WHY
NetworkManager               0   root 848  NetworkManager  sleep    NetworkManager needs to turn off networks
Unattended Upgrades Shutdown 0   root 1016 unattended-upgr shutdown Stop ongoing upgrades or perform upgrades before shutdown

4 inhibitors listed.

これを無視して強制的に電源を切りたいときに -i を使います。-i--check-inhibitors=no の短縮形です。

sudo systemctl poweroff -i

WHATshutdown のインヒビター(上の例では自動更新)は、電源を切ると更新が中途半端な状態で止まる可能性を示しています。-i で無視する前に、何が止めているのかを確認してください。-f がinitシステムを介さずに強制終了するのに対し、-i通常のシャットダウン手順を踏んだうえでインヒビターの確認だけを省く点が違います。

エラー例(root権限なしで実行)

poweroff

出力例:

Call to PowerOff failed: Interactive authentication required.

systemd環境では、権限が足りない場合はpolkitによる認証が求められ、このメッセージが表示されます。sudo poweroff のように sudo を付けて実行してください。なお、SysV時代の poweroff: Need to be root というメッセージは現在のsystemd環境では表示されません。

shutdown・halt・reboot との使い分け

コマンド動作使いどころ
poweroff停止して電源を切る今すぐ電源を落としたいとき
halt停止するが電源は入ったまま電源を維持したまま停止したいとき(systemdではpoweroffと明確に区別される)
reboot再起動する設定反映やカーネル更新後
shutdown -h now停止(時間指定・予約・通知が可能)複数ユーザーが使うサーバー

SysV系では haltpoweroff は同義として扱われることが多かったのですが、systemdでは明確に区別されますhalt はマシンを停止するだけで電源は落とさないため、電源まで切りたい場合は poweroff を使ってください。

時間を指定した予約シャットダウンや、ログイン中のユーザーへの事前通知が必要な場合は Linuxシャットダウンコマンド|shutdownの書き方と予約取消 を参照してください。halt との違いをさらに詳しく知りたい場合は Linuxのhaltコマンドとは?shutdown・poweroffとの違いと安全な使い方 にまとめています。

関連コマンド

  • halt : システムを停止するが、電源は切らない場合がある。
  • reboot : システムを再起動する。
  • shutdown -P : 指定時刻に電源をオフにする。

備考

  • 実行には通常 root 権限が必要です。
  • systemd 環境では systemctl poweroff と同等の動作をします。
  • 強制オプション(-f)は非常時以外では使用しないことが推奨されます。

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント