shutdownコマンドでLinuxを安全に停止・再起動する方法|時刻指定とキャンセル手順コマンド

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxコマンド > shutdownコマンドでLinuxを安全に停止・再起動する方法|時刻指定とキャンセル手順コマンド
「Linuxサーバーを安全にシャットダウンしたいけど、shutdown -h now と poweroff の違いがよく分からない」
「他のユーザーがログインしている状態で、いきなり再起動して大丈夫?」
サーバーの停止・再起動は、操作を間違えるとデータ破損やサービス障害に直結する、責任の重い作業です。

この記事では、Linuxの shutdown(シャットダウン)reboot(リブート) コマンドの実践的な使い方を解説します。
時間指定やwall通知、shutdown -c によるキャンセル、systemctl poweroff / systemctl reboot との使い分け、本番サーバーでの安全な停止手順まで、現場で必要な知識をまとめました。
【この記事でわかること】
・shutdown -h nowで即時シャットダウン、-r nowで即時再起動できる
・shutdown +分数またはHH:MMで時刻指定し、shutdown -cでキャンセルできる
・本番サーバーでは who確認→メッセージ通知→時刻指定の手順が鉄則

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

shutdownコマンドとは?(システムを安全に停止・再起動する)

shutdown は、Linuxシステムを安全にシャットダウン(停止)または再起動するためのコマンドです。

単にシステムを停止するだけでなく、以下の処理を順序立てて実行します。

ログイン中の全ユーザーに通知メッセージ(wall)を送信する
新規ログインをブロックする(/etc/nologin が作成される)
実行中のプロセスに終了シグナル(SIGTERM → SIGKILL)を送る
ファイルシステムをアンマウントして同期する

Linuxはマルチユーザー環境なので、他のユーザーがログインして作業している可能性があります。shutdown を使えば、事前に通知を送ってから安全にシステムを停止できるため、本番サーバーでは shutdown を使うのが基本です。

※ shutdown コマンドの実行には root 権限(sudo)が必要です。

基本的な使い方(シャットダウンと再起動)

1. 今すぐシャットダウンする(shutdown -h now)

最も基本的な使い方です。-h(halt)は「システムを停止する」という意味で、now は「今すぐ」を指定しています。

# 今すぐシステムをシャットダウンする $ sudo shutdown -h now

2. 今すぐ再起動する(shutdown -r now)

-r(reboot)オプションを使うと、システムを停止した後に自動的に再起動します。

# 今すぐシステムを再起動する $ sudo shutdown -r now

3. 時間を指定してシャットダウンする

shutdown の最大の特長は、時間を指定して実行できることです。時間の指定方法は2種類あります。

+分数:指定した分数後に実行する(例:+5 で5分後)
HH:MM:指定した時刻に実行する(例:23:00 で23時ちょうど)

# 5分後にシャットダウンする $ sudo shutdown -h +5 # 23時にシャットダウンする $ sudo shutdown -h 23:00 # 10分後に再起動する $ sudo shutdown -r +10

時間を指定すると、ログイン中のユーザーの端末にwall(ウォール)メッセージが自動で表示されます。

4. 通知メッセージを添えてシャットダウンする

時間指定の後にメッセージを追加すると、wallメッセージに含めることができます。

# メッセージ付きで5分後にシャットダウンする $ sudo shutdown -h +5 "カーネルアップデートのため、5分後にサーバーを停止します" # ログイン中のユーザーの端末に以下のように表示される Broadcast message from root@server01 (Wed Mar 19 14:55:00 2026): カーネルアップデートのため、5分後にサーバーを停止します The system is going down for poweroff at Wed 2026-03-19 15:00:00 JST!

5. 予約済みのシャットダウンをキャンセルする(shutdown -c)

時間指定でシャットダウンを予約した後、shutdown -c で取り消すことができます。

# 予約済みのシャットダウンをキャンセルする $ sudo shutdown -c # メッセージ付きでキャンセルする $ sudo shutdown -c "メンテナンス延期のため、シャットダウンを取り消します"

-c(cancel)を実行すると、ログイン中のユーザーにキャンセルの通知も送信されます。「急にシャットダウンを予約してしまったが、まだ作業中のユーザーがいた」という場面で使ってください。

rebootコマンドとの違い

reboot コマンドは、引数なしでシステムを即座に再起動するシンプルなコマンドです。

# システムを即座に再起動する $ sudo reboot

shutdown -r nowreboot はどちらもシステムを再起動しますが、以下の違いがあります。

shutdown -r now:wallメッセージの送信、新規ログインのブロック、時間指定やキャンセルが可能
reboot:即座に再起動する。時間指定やメッセージ送信の機能はない

開発環境やテスト環境では reboot で手早く再起動するのが便利ですが、本番サーバーでは必ず shutdown -r を使い、ユーザーへの通知と猶予時間を確保してください

同様に、シャットダウンにも poweroff / halt というコマンドがあります。

# 即座にシステムを停止する(shutdown -h now と同等) $ sudo poweroff # システムを停止する(電源はオフにしない場合がある) $ sudo halt

halt は環境によって電源を完全にオフにしないことがあります。確実に電源を切りたい場合は poweroff または shutdown -h を使ってください。

systemctl poweroff / systemctl reboot(systemd環境)

RHEL 7 / CentOS 7 以降の systemd 環境では、systemctl コマンドでもシャットダウン・再起動が可能です。

# systemctl でシャットダウンする $ sudo systemctl poweroff # systemctl で再起動する $ sudo systemctl reboot

実は、現在のほとんどのLinuxディストリビューションでは shutdown / reboot / poweroff は内部的に systemctl を呼び出しています。どのコマンドを使っても最終的な動作は同じです。

ただし、shutdown コマンドには時間指定・メッセージ送信・キャンセルといった機能があるため、本番環境では shutdown を使うメリットが大きいです。

本番サーバーでの安全なシャットダウン手順

開発環境なら reboot 一発で問題ありませんが、本番サーバーでは以下の手順を踏むことで、事故を防ぐことができます。

1. ログイン中のユーザーを確認する(who / w)

まず、他にログインしているユーザーがいないか確認します。

# ログイン中のユーザーを確認する $ who tanaka pts/0 2026-03-19 10:00 (192.168.1.100) suzuki pts/1 2026-03-19 13:30 (192.168.1.101) # w コマンドならユーザーが何をしているかも確認できる $ w 14:55:00 up 120 days, 3:00, 2 users, load average: 0.10, 0.05, 0.01 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT tanaka pts/0 192.168.1.100 10:00 4:55m 0.05s 0.01s vim config.yml suzuki pts/1 192.168.1.101 13:30 1:25m 0.02s 0.02s -bash

上の例では tanaka さんが vim でファイルを編集中です。この状態でいきなり再起動すると、編集中のデータが失われます。

2. wallコマンドで事前通知する

ログイン中のユーザーがいる場合は、wall(Write ALL)コマンドで全員にメッセージを送ります。

# ログイン中の全ユーザーにメッセージを送る $ wall "10分後にカーネルアップデートのためサーバーを再起動します。作業を保存してログアウトしてください。"

3. 時間指定でシャットダウンを予約する

通知を送ったら、猶予時間を設けてシャットダウンを予約します。

# 10分後にシャットダウンする(メッセージ付き) $ sudo shutdown -r +10 "カーネルアップデートのため再起動します"

4. sync でディスクを同期する(任意)

shutdown コマンドは内部で sync(ディスクバッファの書き出し)を実行しますが、念のため手動で実行しておくと安心です。

# メモリ上のデータをディスクに書き出す $ sync

sync はファイルシステムのバッファ(メモリに溜まっている書き込みデータ)を強制的にディスクへ反映させるコマンドです。通常は shutdown が自動で行いますが、万が一に備えて実行しておくと安全です。

shutdown コマンドのトラブルシュート・エラー対処

1. Permission denied / Must be root と表示される

shutdown は root 権限が必要です。一般ユーザーで実行するとエラーになります。

# 一般ユーザーで実行するとエラーになる $ shutdown -h now Failed to power off system via logind: Interactive authentication required. # sudo を付けて実行する $ sudo shutdown -h now

2. shutdown -c でキャンセルできない

shutdown -c は、時間指定で予約されたシャットダウンのみキャンセルできます。shutdown -h now のように即時実行を指定した場合は、キャンセルする猶予がありません。

本番サーバーでは now ではなく +1(1分後)以上の時間を指定する習慣をつけておくと、万が一の誤操作時にキャンセルできます。

3. リモートからシャットダウン後、サーバーに接続できない

SSH 経由でリモートのサーバーをシャットダウンした場合、電源が切れた状態なのでSSHでは再起動できません。対処法は以下のとおりです。

IPMI / iLO / iDRAC:物理サーバーのリモート管理インターフェースで電源をオンにする
クラウド(AWS / Azure等):管理コンソールからインスタンスを起動する
データセンター:現地スタッフに電源投入を依頼する

リモートで作業する場合は、シャットダウン(-h)ではなく再起動(-r)を使うのが鉄則です。シャットダウンしてしまうと、物理的に電源を入れ直す必要があるためです。

shutdownコマンドの主なオプション一覧

-h:システムを停止する(halt / poweroff)
-r:システムを再起動する(reboot)
-c:予約済みのシャットダウンをキャンセルする
-k:実際にはシャットダウンせず、wallメッセージだけを送信する(テスト用)
now:今すぐ実行する
+分数:指定した分数後に実行する
HH:MM:指定した時刻に実行する

`sudo shutdown -h now` の内部動作|SIGTERM → SIGKILL の順で何が起きているか

「sudo shutdown h now」で辿り着く方は、コマンドを打った瞬間にサーバーの中で何が走っているかを把握したい段階だと思います。sudo shutdown -h now は単に電源を落とすだけのコマンドではなく、ログインユーザーへの通知 → 新規ログインブロック → プロセスへの終了シグナル送信 → ファイルシステム同期 → ハードウェア停止、という段階処理を実行します。

# 即時停止(停止までの段階処理は省略されないが、待ち時間ゼロ)
$ sudo shutdown -h now

# 内部的にはこの順序で処理される(systemd 環境の例)
# 1. wall コマンドで全ログインユーザーに通知
#    "The system is going down for power-off NOW!"
# 2. /run/nologin を作成して新規ログインをブロック
# 3. 各サービスに SIGTERM(15番)を送信、TimeoutStopSec まで待つ
# 4. 終了しないプロセスに SIGKILL(9番)を強制送信
# 5. ファイルシステムを sync してアンマウント
# 6. ACPI で電源オフ

段階処理の中で時間がかかるのは「3.SIGTERM 待ち」です。journald や PostgreSQL のような書き込み系サービスは終了処理に数秒〜数十秒かかるため、本番では +1(1分後)など短い予告時間を入れて、データ書き出しの猶予を作る方が安全です。

# 1分後にシャットダウン(通知メッセージ付き)
$ sudo shutdown -h +1 "システムメンテナンスのため1分後に停止します"

# 5分後にシャットダウン(最もよく使う本番予告)
$ sudo shutdown -h +5

# 予約を取り消す(誤って打ってしまった場合)
$ sudo shutdown -c

私も新人時代に「now を打てば即電源が落ちる」と思い込み、書き込み中の DB を強制停止して手が動かなくなったことがあります。実体は段階処理であり、SIGTERM の応答時間が長いサービスがあると now でも体感数十秒かかります。本番では +1 以上の予告を基本にする方が安全です。

本記事のまとめ(shutdown / reboot コマンド早見表)

やりたいこと コマンド
今すぐシャットダウンする sudo shutdown -h now
今すぐ再起動する sudo shutdown -r now
5分後にシャットダウンする sudo shutdown -h +5
指定時刻にシャットダウンする sudo shutdown -h 23:00
メッセージ付きでシャットダウンする sudo shutdown -h +5 "メッセージ"
予約をキャンセルする sudo shutdown -c
rebootで即座に再起動する sudo reboot
systemctlでシャットダウンする sudo systemctl poweroff
systemctlで再起動する sudo systemctl reboot
ログイン中のユーザーを確認する who
全ユーザーにメッセージを送る wall "メッセージ"

shutdownコマンドを使いこなして、Linuxサーバーの安全な停止・再起動を学びたいですか?

誤った停止手順は、データ破損やサービス中断の原因になります。現場の正しい手順を体系的に学んでおきましょう。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。