システム終了時に接続ユーザにメッセージを送る|shutdown / wall でブロードキャスト通知する実務テクニック

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, システム管理 > システム終了時に接続ユーザにメッセージを送る|shutdown / wall でブロードキャスト通知する実務テクニック

この記事のポイント

・shutdown -h +時間 "メッセージ" でログイン中の全ユーザにブロードキャストできる
・任意のタイミングで wall コマンドを使えばシャットダウンと切り離して通知できる
・systemd採用ディストロでも shutdown / wall は標準で利用可能
・本番サーバーの停止通知はメッセージ+時間指定の2点をワンライナーで定型化する

「サーバーを止める前に、ログイン中の作業者へ一斉通知したい」
業務サーバーや共用開発機を停止するとき、誰かが裏で作業していてセッションごと切ってしまうのは避けたいところです。

この記事では、システム終了時に接続ユーザにメッセージを送る方法を、shutdownコマンドのブロードキャスト機能とwallコマンドの両面から解説します。RHEL 9 / Rocky Linux 9 / Ubuntu 24.04 LTSで動作確認済みです。

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

なぜシステム終了時に接続ユーザへのメッセージ通知が必要なのか

サーバーをshutdownすると、Linuxは標準で「The system is going down for system halt NOW!」というブロードキャストメッセージをログイン中の全ユーザに流します。ただしこの定型文だけでは、なぜ止めるのか・あと何分で止まるのかが伝わりません。

実務では「定期メンテのため23:00停止」「ストレージ交換のため5分後halt」のように、理由と猶予時間をセットで通知するのが鉄則です。これをサボると、リモートでviで編集中の同僚のセッションが突然切れ、未保存ファイルを失う事故につながります。

shutdownコマンドにはこのメッセージを差し替える引数が用意されていて、わざわざ事前にチャットへ書き込まなくても、ログイン中の全ユーザのターミナルに直接通知を流せます。

shutdownコマンドでメッセージを送る基本的な使い方

shutdownコマンドの構文は「shutdown オプション 時間指定 メッセージ」の3要素です。時間指定の後に書いた文字列が、そのままブロードキャストメッセージとして全ターミナルに表示されます。

1. 3分後に停止+メッセージを表示する

最も使う形が、数分後の停止を予告するパターンです。

# 3分後にシステム停止+メッセージ送信 [root@Tiger ~]# shutdown -h +3 "Goodbye! メンテナンスのため停止します" Broadcast message from root@Tiger (pts/0) (Sat Jun 12 20:42:39 2026): Goodbye! メンテナンスのため停止します The system is going DOWN for system halt in 3 minutes!

「-h」は halt(停止)、「+3」は3分後の意味です。メッセージは引用符で囲んでおくとスペースを含む日本語でも安全に渡せます。

2. 時刻指定で停止+メッセージを表示する

「23:00きっかりに停止」のように絶対時刻を指定したい場合は、+分の代わりに HH:MM 形式を渡します。

# 23:00に停止予約+メッセージ [root@Tiger ~]# shutdown -h 23:00 "本日23:00にメンテナンス停止します" Shutdown scheduled for Sat 2026-06-12 23:00:00 JST, use 'shutdown -c' to cancel.

このコマンドを実行した瞬間、ログイン中の全ユーザに通知が流れます。それ以降、停止5分前・1分前にも自動でリマインダーが追加配信されます。

3. 即時停止+メッセージを表示する

障害対応で「今すぐ止める」場合は「now」を指定します。猶予はゼロなのでメッセージは「お知らせ」ではなく「事後通知」になります。

# 今すぐ停止+メッセージ [root@Tiger ~]# shutdown -h now "緊急停止します。後で連絡します"

緊急時の運用ルールとして、必ず「あとで連絡先」をメッセージに含めておくと、切られた側が安心できます。

shutdownを使わずに任意メッセージを送るwallコマンド

「停止はしないが事前にアナウンスだけ流したい」「停止5分前にもう一度念押ししたい」というケースで重宝するのが wall コマンド(write all)です。

# 全ユーザにメッセージを送信 [root@Tiger ~]# wall "15分後にサーバーを停止します。作業を保存してください" Broadcast message from root@Tiger (pts/0) (Sat Jun 12 20:45:00 2026): 15分後にサーバーを停止します。作業を保存してください

wallはshutdownと違って、システムを止めずにメッセージだけを全ターミナルへブロードキャストします。停止のN分前に2回目・3回目のアナウンスを送る用途で使うと、利用者からの「いきなり切られた」クレームを激減できます。

shutdown / wall 早見表

やりたいことコマンド
3分後に停止+メッセージ送信shutdown -h +3 "メッセージ"
23:00に停止+メッセージ送信shutdown -h 23:00 "メッセージ"
今すぐ停止+メッセージ送信shutdown -h now "メッセージ"
3分後に再起動+メッセージ送信shutdown -r +3 "メッセージ"
停止予約をキャンセルshutdown -c "キャンセル理由"
停止せずに全ユーザへ通知wall "メッセージ"
ファイルの内容をメッセージとして送信wall < /tmp/notice.txt
コマンド単独形式で覚えておけば、本番でも迷いません。

応用・実務Tips

1. メッセージを受け取れる対象を確認する

shutdown / wall のブロードキャストはターミナルへ書き込み許可(mesg y)を出しているユーザにしか届きません。受け取れているか確認したい場合は、対象ユーザのターミナルで mesg コマンドを実行します。

# 現在の設定確認 [pakira@Tiger ~]$ mesg is y # 一時的にメッセージ受信を拒否 [pakira@Tiger ~]$ mesg n

セキュリティポリシーで「mesg n」が標準のサーバーでは、shutdownのブロードキャストが届かない事故が起きがちです。停止通知を別経路(Slack/メール)でも併送する運用が安全です。

2. 停止予約をキャンセルする

shutdownで予約した停止は -c でキャンセルできます。キャンセル時にもメッセージを添えると親切です。

# 予約済みshutdownのキャンセル+メッセージ [root@Tiger ~]# shutdown -c "停止予約をキャンセルしました。作業を継続してください"

「-c」単独でもキャンセルできますが、ユーザに「中止された」と明示するため必ずメッセージを付けます。

3. ファイルの内容を一斉送信する

長いアナウンスはwallで標準入力リダイレクトを使うと、何度も同じ文章を流せます。

# 定型文をテキストにしておく [root@Tiger ~]# cat /tmp/maint_notice.txt 本日23:00より、サーバーメンテナンスのため停止します。 作業中のファイルは22:55までに保存してください。 お問い合わせは管理者まで。 # 一斉送信 [root@Tiger ~]# wall < /tmp/maint_notice.txt

シェルスクリプトに組み込めば、停止1時間前・30分前・5分前と定時送信する運用も簡単に作れます。

「Operation not permitted」が出た時の対処法

wall は一般ユーザでも実行できますが、shutdown はroot権限が必要です。一般ユーザで shutdown を実行すると以下のエラーになります。

[pakira@Tiger ~]$ shutdown -h +3 "Goodbye!" Failed to set wall message, ignoring: Interactive authentication required. Failed to call ScheduleShutdown in logind, proceeding with /sbin/shutdown: Interactive authentication required. Failed to open /dev/initctl: Permission denied Failed to talk to init, no shutdown.

sudoをつけるか、su -でroot昇格してから実行します。systemd採用環境ではPolkit経由で権限委譲することもできますが、運用上はsudo経由に統一するほうがログも残って事故調査がしやすくなります。

shutdown / wall とsystemdの関係

RHEL 7以降のsystemd採用ディストロでは、shutdown / halt / reboot / poweroff は内部的に systemctl のラッパーに置き換わっています。動作としては従来通りで、後方互換が保たれています。

shutdownコマンドの実体を確認すると、systemctlへのシンボリックリンクになっていることが分かります。

# shutdownの実体を確認 [root@Tiger ~]# ls -l /sbin/shutdown lrwxrwxrwx. 1 root root 16 Apr 1 10:00 /sbin/shutdown -> ../bin/systemctl

そのため記事中のshutdownコマンドはRHEL 7以降・Rocky Linux・Ubuntu 22.04 / 24.04でもそのまま使えます。

本記事のまとめ

システム終了時に接続ユーザにメッセージを送る運用は、サーバー管理の基本マナーです。

shutdown -h +時間 "メッセージ":停止予約とブロードキャストを同時実行
shutdown -c "メッセージ":停止予約のキャンセル通知
wall "メッセージ":停止せずに任意のタイミングで一斉通知
mesg y:受信側でブロードキャストを許可

本番サーバーの停止通知では、shutdownの一発予約だけに頼らず、wallで複数回リマインドを流すと利用者の信頼を失わずに済みます。Slack / メール / wall の3点併用が安全運用の鉄則です。

■ 関連記事
システムを指定時間に終了する
システムをすぐに終了する
システムを停止する
システムをすぐに再起動する
システムの再起動を高速に行う
指定時間後にシステムを再起動する
shutdownコマンドの詳細はこちら
rebootコマンドの詳細はこちら
haltコマンドの詳細はこちら
syncコマンドの詳細はこちら

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

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

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

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

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

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

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

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

この記事を書いた人

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

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

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