「haltコマンドを実行したが、電源が落ちなかった」
Linuxのシステム停止コマンドにはいくつか種類があります。
通常は
shutdown を使いますが、緊急停止や最小環境での停止には halt が使われることがあります。この記事では、
halt コマンドの使い方と shutdown との違いを解説します。基本的な使い方から主要オプション、systemctlとの関係、現代のLinuxでの正しい停止手順まで網羅しました。
・haltは即座にシステム停止するコマンド。-pオプションで電源オフまで実行できる
・shutdownはログイン中ユーザへの通知付き。通常の停止にはshutdownを使う
・現代のLinuxではsystemctl poweroffがhalt -pと同等の動作をする
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
haltコマンドとは?shutdownとの違い
halt コマンドはLinuxシステムを即座に停止するコマンドです。shutdown コマンドとの主な違いは以下の通りです。| コマンド | 動作 | ユーザへの通知 | 主な用途 |
|---|---|---|---|
| halt | 即座にシステム停止 | なし | 緊急停止・スクリプトによる停止 |
| shutdown | 時刻指定で停止 | ログイン中ユーザへのメッセージ通知あり | 通常の計画的停止 |
| poweroff | 即座にシステム停止・電源オフ | なし | halt -pと同等。systemdで推奨 |
通常の計画停止では
shutdown を使い、緊急時や自動スクリプトでの停止に halt を使うのが一般的な使い分けです。haltコマンドの基本的な使い方
1. システムを停止する(電源は落ちない場合あり)
# システムを停止する(root権限が必要) # halt Broadcast message from root@server01 ... The system is going down for system halt NOW! System halted.
halt のみだとカーネルはシャットダウンしますが、環境によっては電源が落ちない場合があります。電源まで落としたい場合は
-p オプションを付けてください。2. システムを停止して電源を切る(-p オプション)
# システムを停止して電源を切る # halt -p
-p(poweroff)オプションを付けると、システム停止後に電源も切断します。物理サーバーでの停止時はこちらを使うのが確実です。
現代のLinuxでの停止コマンド(systemctl)
CentOS7 / RHEL7 以降のsystemd環境では、halt は内部的に systemctl を呼び出しています。直接
systemctl を使う方が推奨されます。# システムを停止する(halt相当) # systemctl halt # システムを停止して電源を切る(halt -p相当) # systemctl poweroff # システムを再起動する # systemctl reboot
systemctl poweroff が halt -p と同等の動作をします。現代のLinuxでは systemctl を使うのが標準です。応用:シェルスクリプトでの利用
バックアップスクリプトの最後に自動停止を組み込むケースがあります。#!/bin/bash # バックアップ完了後に自動でシャットダウンするスクリプト例 echo "バックアップを開始します..." rsync -av /data/ /backup/ if [ $? -eq 0 ]; then echo "バックアップ完了。システムを停止します。" /sbin/halt -p else echo "バックアップ失敗。停止を中断します。" exit 1 fi
/sbin/halt)を使うことで、PATH設定に依存しない安全な実装になります。トラブルシュート:haltが効かない場合
【注意】一般ユーザでhaltを実行した場合
halt の実行にはroot権限が必要です。ディストリビューションによって動作が異なります。・RHEL/CentOS系:ローカルコンソールからは一般ユーザで実行できる場合もあるが、リモートSSH経由では無視される
・Debian/Ubuntu系:一般ユーザでは実行できない
リモートでの停止操作は必ず
sudo または su - でroot権限を取得してから実行してください。# sudoで実行する場合 $ sudo halt -p
本記事のまとめ
| やりたいこと | コマンド |
|---|---|
| システムを即座に停止する | halt |
| システムを停止して電源を切る | halt -p |
| systemdでシステムを停止する | systemctl halt |
| systemdで電源オフ | systemctl poweroff |
| 計画的なシャットダウン(推奨) | shutdown -h now |
Linuxサーバーの停止・起動を安全に管理できるようになりたいですか?
誤ったコマンドでの停止操作はデータ破損の原因になります。正しい手順と安全策を体系的に学んでおきましょう。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:bcコマンドでコマンドラインから計算する方法|小数計算やシェルスクリプト連携も
- 前のページへ:fsck
- この記事の属するカテゴリ:Linuxコマンド・LinuxコマンドF-J・システム管理コマンドへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます