【Linux】rebootコマンドの使い方|再起動・強制終了とオプション一覧

コマンドリファレンス

reboot コマンドは、Linuxシステムを安全に再起動するためのコマンドです。
カーネルに再起動シグナルを送信し、すべてのプロセスを終了させたうえでシステムをリブートします。

構文(Syntax)

reboot [オプション]

主なオプション一覧

オプション説明使用例
(なし)即座に再起動するsudo reboot
-f, --forceinitシステムを介さず即座に再起動(ファイルシステムが正しくアンマウントされない)sudo reboot -f
-n, --no-sync再起動前にディスクの同期(sync)を行わないsudo reboot -n
-d, --no-wtmpwtmp(ログイン履歴)に記録を書かないsudo reboot -d
-w, --wtmp-onlywtmpへの記録だけ行い、実際には再起動しないsudo reboot -w
--no-wall全ユーザーへの通知(wall)を送らないsudo reboot --no-wall
--halt再起動せず停止(halt)するsudo reboot --halt
--poweroff再起動せず電源を切るsudo reboot --poweroff

注意したいのが -p です。-p--poweroff の短縮形)は halt または poweroff から呼ばれたときにだけ有効で、reboot から呼んだ場合は無視されますman 8 reboot にも「This option is ignored when reboot is invoked.」と明記されています。sudo reboot -p は電源が切れるのではなく通常どおり再起動するため、電源を落としたい場合は sudo poweroff(または sudo reboot --poweroff)を使ってください。

また、SysV時代の -h オプションはsystemd環境の reboot には存在しません。停止だけしたい場合は --halt を使います。

実行例

通常の再起動

sudo reboot

(システムが安全に再起動されます)

強制再起動

sudo reboot -f

(全プロセスを待たずに即座にリブート、データ消失の危険あり)

再起動ではなく電源を切る

sudo reboot --poweroff

(システムの電源がオフになります。短縮形の -preboot から呼ぶと無視されるため、必ず長い --poweroff を使うか、素直に sudo poweroff を実行してください)

systemctl reboot との関係

systemdを採用している現在のディストリビューション(Ubuntu、Debian、RHEL系など)では、rebootsystemctl へのシンボリックリンクです。実体が同じなので sudo rebootsudo systemctl reboot の動作は変わりません。

$ ls -l /usr/sbin/reboot
lrwxrwxrwx 1 root root 16 /usr/sbin/reboot -> ../bin/systemctl

パッケージ更新中などに再起動を止める「インヒビター」が有効だと待たされることがあります。無視して再起動するには sudo systemctl reboot -i--check-inhibitors=no の短縮形)を使いますが、実行前に systemd-inhibit --list で何が止めているかを確認してください。

エラー例(root権限なしで実行)

reboot

出力例:

Call to Reboot failed: Interactive authentication required.

systemd環境では権限が足りない場合にpolkitの認証が要求され、このメッセージが表示されます。sudo reboot のように sudo を付けて実行してください。SysV時代の reboot: Need to be root というメッセージは、現在のsystemd環境では表示されません。

関連コマンド

  • shutdown : 時間指定・メッセージ通知付きで再起動・停止を行う。shutdown -r now で即時再起動。
  • halt : CPUを停止するが電源は切らない。
  • poweroff : システムの電源を切る。

備考

  • 実行には通常 root 権限が必要です。
  • systemd 環境では systemctl reboot と同等の動作をします。
  • 強制再起動(-f)は非常時のみ使用推奨です。

よくある質問(FAQ)

なぜ reboot に sudo が必要なのですか?

システムの再起動は全ユーザーのプロセスに影響する操作のため、一般ユーザー権限では実行できません。rebootを一般ユーザーで実行するとsystemd環境ではCall to Reboot failed: Interactive authentication required.というエラーになるため、sudo rebootのように管理者権限で実行します。sudo 自体の仕組みはsudo コマンドの使い方を参照してください。

sudo reboot と shutdown -r now の違いは?

どちらも即座に再起動する点は同じですが、shutdownは再起動までの時間指定やログインユーザーへの通知メッセージ送信に対応している点が異なります。単に今すぐ再起動したいだけならsudo rebootの方がシンプルです。

sudo reboot を実行してもサーバーが応答しなくなった場合は?

SSH接続先のサーバーでrebootを実行すると、再起動と同時にSSHセッションも切断されます。これは正常な動作です。再起動には数十秒〜数分かかることがあるため、少し時間を置いてから再度SSH接続を試してください。長時間応答しない場合は、クラウドの管理コンソールなどでインスタンスの状態を確認しましょう。

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント