shutdownコマンドでLinuxを安全にシャットダウン・再起動する方法|rebootとの違いも


図解60p「Linuxサーバー構築入門マニュアル」無料
登録10秒/自動返信でDL/合わなければ解除3秒
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxコマンド, LinuxコマンドP-T, システム管理コマンド > shutdownコマンドでLinuxを安全にシャットダウン・再起動する方法|rebootとの違いも
「Linuxサーバーを安全にシャットダウンしたいけど、shutdown -h now と poweroff の違いがよく分からない」
「他のユーザーがログインしている状態で、いきなり再起動して大丈夫?」
サーバーの停止・再起動は、操作を間違えるとデータ破損やサービス障害に直結する、責任の重い作業です。

この記事では、Linuxの shutdown(シャットダウン)reboot(リブート) コマンドの実践的な使い方を解説します。
時間指定やwall通知、shutdown -c によるキャンセル、systemctl poweroff / systemctl reboot との使い分け、本番サーバーでの安全な停止手順まで、現場で必要な知識をまとめました。

ここまで読んだあなたへ、無料プレゼント
図解60p「Linuxサーバー構築入門マニュアル」で、
最初の環境構築をサクッと終わらせませんか?
無料で受け取る 登録10秒/自動返信でDL/解除も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:指定した時刻に実行する

本記事のまとめ(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サーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

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



無料プレゼント
図解60p「Linuxサーバー構築入門マニュアル」
独学で詰まる前に、“型(手順書)”で最初の環境構築をサクッと終わらせましょう。
登録10秒/自動返信でDL/合わなければ解除3秒
無料で受け取る ※メールアドレスだけでもOK(必須項目は最小限)

宮崎 智広

この記事を書いた人

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

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

図解60pのLinux無料マニュアル
登録10秒/自動返信でDL
無料で受け取る