Bashプログラミング
 Computer >> コンピューター >  >> プログラミング >> Bashプログラミング

Linuxのshutdownコマンド徹底解説!シャットダウン・再起動を安全に実行する方法

Linuxのshutdownコマンドは、コンピュータを安全にシャットダウンするためのコマンドです。

このコマンドを実行すると、ログイン中のすべてのユーザーと稼働中のプロセスに通知が送られ、各プロセスはデータを保存して正常に終了する機会を得られます。そのため、電源ボタンを長押しして強制終了するような方法と比べ、ファイルシステムやデータを破損させるリスクを大幅に減らせます。

また、shutdownコマンドは単なる電源断だけでなく、システムの再起動や、他の電源状態への移行にも利用できます。

基本構文

shutdown [OPTION]... TIME [MESSAGE]

TIMEには実行タイミングを指定します。「now」(即時)、「+5」(5分後)、「10:00」(10時ちょうど)といった形式が使えます。TIMEとMESSAGEは省略可能ですが、多くの環境ではデフォルトで1分後にシャットダウンが実行されます。

主なオプション一覧

マニュアルから引用した、shutdownコマンドで使用できる主なオプションは以下の通りです。

オプション 説明
-r シャットダウン処理の完了後にシステムを再起動する。
-h シャットダウン処理の完了後にシステムを停止(halt)または電源断(poweroff)する。どちらになるかはシステム側に委ねられる。
-H シャットダウン処理の完了後にシステムを停止(halt)する。
-P シャットダウン処理の完了後にシステムの電源を切る(poweroff)。
-c 実行中(予約済み)のシャットダウンをキャンセルする。このオプション使用時はTIMEを指定せず、最初の引数がMESSAGEとして扱われる。
-k 警告メッセージの送信とログイン禁止のみを行い、実際にはシャットダウンしない。

なお、「-H」や「-P」などの一部のオプションは、古いハードウェアや特殊な用途向けであり、日常的に使うことはほとんどありません。

実行例

ここからは、よく使われるオプションを組み合わせた具体的な実行例を紹介します。

注意: 多くのLinuxシステムでは、shutdownコマンドはroot権限が必要です。一般ユーザーで実行する場合は、以下の例のようにsudoを付けて実行してください。

システムを即座にシャットダウンする

sudo shutdown -h now

最も基本的な使い方です。「now」を指定することで、すぐにシャットダウンが実行されます。

システムを即座に再起動する

sudo shutdown -r now

「-r」オプションを付けると、シャットダウン後に自動的に再起動されます。

5分後にシャットダウンし、ログイン中のユーザーへメッセージを通知する

sudo shutdown -h +5 "5分後にシャットダウンします!作業内容を保存してください!"

「+5」は「5分後」を意味します。第2引数にメッセージを指定すると、ログイン中の全ユーザーの端末にその内容がブロードキャストされ、作業中のユーザーに警告できます。

午前10時に再起動を予約し、メッセージも併せて通知する

sudo shutdown -r 10:00 "午前10時の定期再起動を実施します!"

「hh:mm」形式で絶対時刻を指定すれば、指定した時刻に再起動が実行されます。サーバーのメンテナンス作業などで便利です。

予約済みのシャットダウンをキャンセルする

時間を指定して予約したシャットダウンは、実行前にキャンセルできます。任意でメッセージを添えることも可能です。

sudo shutdown -c

sudo shutdown -c "再起動を予定していましたが、中止しました。"

キャンセル時にもメッセージを指定すれば、その旨がログイン中のユーザーに通知されます。

まとめ

シャットダウンという操作自体は誰でも知っていますが、Linuxではshutdownコマンドを使うことで、他のユーザーへの通知やプロセスの安全な終了を保証しながら、正しくシステムを停止・再起動できます。

時間指定による予約実行やメッセージ通知など、単発のコマンド実行以外にも便利な機能が揃っているので、サーバー運用の場面でもぜひ活用してみてください。

  1. Linuxのteeコマンド使い方ガイド|画面表示とファイル保存を同時に実現

    Linuxシェルでパイプやリダイレクトを使っているなら、teeコマンドの出番もきっとあるはずです。teeは「標準出力に表示しながら、同時にファイルにも書き込む」ことができる便利なユーティリティです。この記事では、teeコマンドの基本操作から、sudoとの組み合わせ、追記モード、エラー出力の扱い方まで、実例を交えながら詳しく解説します。 teeコマンドとは何をするもの? まず、次のようなコマンドを見てみましょう。 ls このコマンドは、現在のディレクトリの内容を表示します。つまり、標準出力(stdout)へ出力するわけです。標準出力とは通常、画面、正確には仮想端末のディスプレイのことです

  2. Linuxのwatchコマンドの使い方と実用例をわかりやすく解説

    Linuxのwatchコマンドは、指定したコマンドを一定間隔で繰り返し実行し、その結果を画面に表示し続けるためのツールです。コマンドの出力が時間とともにどう変化するかをリアルタイムで監視したい場合に非常に便利です。この記事では、watchコマンドの基本的な使い方と、覚えておくと役立つ実用的な例を紹介します。 watchコマンドの基本構文 watchコマンドの構文は以下のとおりです。 watch オプション コマンド 各要素の意味は次のとおりです。 オプション: 後述の表から選択したオプションを指定します。watchコマンドのデフォルト動作を変更できます。 コマンド: watchが繰り返し実行