シャットダウンや再起動は、システム全体の可用性を変えます。操作前に対象ホストを確認して許可を得て、接続中のユーザーへ通知し、重要な書き込み、バックアップ、保守作業を完了できるようにしてください。リモートシステムでは、マシンが復帰しない場合に備え、独立したコンソールまたは復旧経路を確保します。
Init · レッスン 7
電源状態
Linux のシャットダウンと再起動を予約、取り消し、安全に検証する方法を学びます。
安全に電源を切る
systemd ベースのディストリビューションでは、次のコマンドで秩序立った電源オフを要求します。
$ sudo systemctl poweroff
従来の shutdown インターフェースも広く利用できます。
$ sudo shutdown -h now
秩序立ったシャットダウンでは、サービスに停止を要求し、ファイルシステムをアンマウントした後、マシンの電源状態を変えます。強制再起動や物理的な電源スイッチを通常の近道として使わないでください。書き込みが中断され、データやサービスが不整合になるおそれがあります。
リモートの本番ホストの電源を切る前に、何をすべきですか?
シャットダウンを予約、取り消す
操作を予約し、ユーザーとワークロードに準備時間を与えます。+m 形式は現在からの分数を表します。
$ sudo shutdown -h +4
この例は4分後の停止または電源オフを予約し、ログイン中のユーザーへ警告を送ります。保守を延期する場合は、期限前に予約済みシャットダウンを取り消します。
$ sudo shutdown -c
警告を送れば安全だと思い込まないでください。アクティブなセッションとシステム固有のワークロードを確認し、サービスやクラスタに文書化されたドレイン手順があれば従います。
現在から4分後のシャットダウンを予約するコマンドはどれですか?
システムを再起動する
マシンを停止して再び起動する必要があるときは、秩序立った再起動を使います。
$ sudo systemctl reboot
一般的な互換コマンドには、次のものがあります。
$ sudo shutdown -r now
$ sudo reboot
再起動前に、暗号化ディスク、起動設定、ネットワーク、必須サービスが現在の対話型セッションなしで復旧できることを確認してください。ほかのシステムがこのホストに依存する場合は、先にフェイルオーバーまたはワークロード移行を調整します。
shutdown を通じて即時の秩序立った再起動を要求するコマンドはどれですか?
停止と電源オフを区別する
halt、poweroff、reboot は init システムへの互換フロントエンドの場合がありますが、要求する最終状態は異なります。halt は通常のシステム動作を停止しますが、プラットフォームと実装によっては電力が供給されたままになります。power-off はさらに、対応ハードウェアへ電力供給の停止を要求します。意図する結果を名前で表すコマンドを優先し、互換動作は環境によって異なるためローカルのマニュアルを確認してください。
halt と poweroff を区別すべきなのはなぜですか?
結果を検証する
予約した操作では、ユーザーが通知を受け取り、重要な作業がドレインされたことを確認します。再起動後は、想定したカーネルと起動状態、失敗したユニット、アプリケーションの正常性、ストレージのマウント、ネットワーク到達性、直近の起動ログを確認します。ログインに成功しただけでは、サービス全体の復旧は証明できません。
$ uptime
$ systemctl --failed
$ journalctl -b -p warning
これらは出発点です。実際のワークロードには、アプリケーション固有のヘルスチェックを使ってください。
再起動したアプリケーションの準備が整ったことを示す最も強い証拠はどれですか?
レッスン完了
電源状態 を完了しました
準備、明確な意図、検証を伴って Linux の電源状態を変更できるようになりました。
対象、影響、許可、復旧経路を確認する。
通常の運用では、秩序立った電源オフまたは再起動コマンドを使う。
ユーザーとワークロードに警告が必要なら、シャットダウンを予約する。
保守計画が変わったら、保留中のシャットダウンを取り消す。
マシンの復帰後、システムとアプリケーションの正常性を検証する。