Red Hat Training

A Red Hat training course is available for RHEL 8

14.4. システムのシャットダウン、サスペンド、およびハイバネート

システム管理者は、さまざまな電源管理オプションを使用して電力消費を管理したり、適切なシャットダウンを実行してすべてのデータを確実に保存したり、システムを再起動して変更や更新を適用したりできます。

14.4.1. システムのシャットダウン

システムをシャットダウンする場合は、systemctl ユーティリティーを使用するか、shutdown コマンドを使用してこのユーティリティーを呼び出します。

shutdown を使用すると、次の利点があります。

  • time 引数を使用してシャットダウンをスケジュールできます。また、この引数を使用すると、システムのシャットダウンがスケジュールされていることがユーザーに警告されます。
  • シャットダウンをキャンセルできます。

14.4.2. システムのシャットダウンのスケジュール設定

システム管理者は、ユーザーが作業内容を保存してシステムからログオフする時間を与えるために、遅延シャットダウンをスケジュールできます。shutdown コマンドを使用して、次の操作を実行します。

  • 特定の時刻にシステムをシャットダウンし、マシンの電源をオフにする
  • マシンの電源を切らずにシステムをシャットダウンして停止する
  • 保留中のシャットダウンをキャンセルする

前提条件

  • Root アクセス

手順

shutdown コマンドを使用して、次のタスクのいずれかを実行します。

  • システムをシャットダウンしてマシンの電源をオフにする時刻を指定します。

    # shutdown --poweroff hh:mm

    hh:mm は 24 時間表記の時刻です。新しいログインを防ぐために、システムがシャットダウンする 5 分前に /run/nologin ファイルが作成されます。

    time 引数を使用すると、オプションの ウォールメッセージ を指定して、システムにログインしているユーザーにシャットダウンの予定を通知できます。たとえば、shutdown --poweroff 13:59 "Attention.The system will shut down at 13:59" などのメッセージです。

  • マシンの電源を切らずに、時間をおいてからシステムをシャットダウンして停止します。

    # shutdown --halt +m

    +m は遅らせる時間 (分) です。now キーワードを +0 のエイリアスとして使用できます。

  • 保留中のシャットダウンをキャンセルします。

    # shutdown -c

14.4.3. systemctl コマンドを使用したシステムのシャットダウン

システム管理者は、systemctl コマンドを使用して、システムをシャットダウンしてマシンの電源をオフにしたり、マシンの電源をオフにせずにシステムをシャットダウンして停止したりできます。

前提条件

  • Root アクセス

手順

systemctl コマンドを使用して、次のタスクのいずれかを実行します。

  • システムをシャットダウンし、マシンの電源をオフにします。

    # systemctl poweroff
  • マシンの電源を切らずにシステムをシャットダウンして停止します。

    # systemctl halt
注記

デフォルトでは、これらのコマンドのいずれかを実行すると、systemd が現在システムにログインしているすべてのユーザーに情報メッセージを送信します。systemd がメッセージを送信しないようにするには、コマンドラインオプション --no-wall を付けてコマンドを実行します。

14.4.4. システムの再起動

システムを再起動すると、systemd は実行中のすべてのプログラムとサービスを停止します。システムはシャットダウンすると、すぐに再起動します。システムの再起動は、次の場合に役立ちます。

  • 新しいソフトウェアまたは更新をインストールした後
  • システム設定を変更した後
  • システムの問題のトラブルシューティングを行う場合

前提条件

  • Root アクセス

手順

  • システムを再起動します。

    # systemctl reboot
注記

デフォルトでは、このコマンドを使用すると、systemd が現在システムにログインしているすべてのユーザーに情報メッセージを送信します。systemd がこのメッセージを送信しないようにするには、--no-wall オプションを指定してこのコマンドを実行します。

14.4.5. システムのサスペンドおよびハイバネートによる電力消費の最適化

システム管理者は、電力消費を管理し、システムのエネルギーを節約し、システムの現在の状態を保存できます。これを行うには、次のモードのいずれかを適用します。

サスペンド
サスペンドは、システムの状態を RAM に保存し、マシンにある、RAM モジュール以外のほとんどのデバイスの電源を切ります。マシンの電源を戻すと、システムは再起動せずに RAM からその状態を復元します。システムの状態がハードディスクではなくメモリーに保存されるため、システムは、ハイバネートよりも、サスペンドモードからのほうがはるかに早く復元できます。ただし、サスペンドされたシステム状態は停電に対して脆弱です。
ハイバネート
ハイバネートは、システムの状態をハードディスクドライブに保存し、マシンの電源を切ります。マシンの電源を戻すと、システムは再起動せずに、保存されたデータからその状態を復元します。システムの状態がメモリーではなくハードディスクに保存されるため、マシンでメモリーモジュールへの電源供給を維持する必要はありません。ただし、システムは、サスペンドモードより、ハイバネーションから復元する方がはるかに遅くなります。
ハイブリッドスリープ
これは、ハイバネートとサスペンドの両方の要素を組み合わせたものです。システムはまず現在の状態をハードディスクドライブに保存し、サスペンドと同様の低電力状態に入ります。これにより、システムはより迅速に再開できるようになります。ハイブリッドスリープの利点は、スリープ状態中にシステムの電源が失われた場合でも、ハイバネーションと同様に、ハードディスクに保存されたイメージから以前の状態を回復できることです。
サスペンドしてからハイバネート
このモードでは、まずシステムがサスペンドされます。これにより、現在のシステムの状態が RAM に保存され、システムが低電力モードになります。一定期間 (HibernateDelaySec パラメーターで定義可能) サスペンド状態が続くと、システムはハイバネートします。ハイバネーションは、システムの状態をハードディスクドライブに保存し、システムを完全にシャットダウンします。サスペンドしてからハイバネートするモードには、バッテリー電力を節約しながら、作業をすぐに再開できるという利点があります。さらに、このモードでは、停電に備えてデータが確実に保存されます。

前提条件

  • Root アクセス

手順

適切な省電力方法を選択します。

  • システムをサスペンドします。

    # systemctl suspend
  • システムをハイバネートします。

    # systemctl hibernate
  • システムをハイバネートおよびサスペンドします。

    # systemctl hybrid-sleep
  • システムをサスペンドしてからハイバネートします。

    # systemctl suspend-then-hibernate

14.4.6. systemctl を使用した電源管理コマンドの概要

以下の systemctl コマンドを使用して、システムの電源管理を制御できます。

表14.4 systemctl 電源管理コマンドの概要

systemctl コマンド説明

systemctl halt

システムを停止します。

systemctl poweroff

システムの電源を切ります。

systemctl reboot

システムを再起動します。

systemctl suspend

システムをサスペンドします。

systemctl hibernate

システムをハイバネートします。

systemctl hybrid-sleep

システムをハイバネートおよびサスペンドします。

14.4.7. 電源ボタンを押したときのシステム動作の変更

コンピューターの電源ボタンを押すと、デフォルトではシステムがシャットダウンします。この動作は好みに応じてカスタマイズできます。

前提条件

  • 管理アクセスがある。

手順

  1. /etc/systemd/logind.conf 設定ファイルを開きます。
  2. HandlePowerKey=poweroff という行を探します。
  3. 行が # 記号で始まる場合は、この記号を削除して設定を有効にします。
  4. poweroff を次のオプションのいずれかに置き換えます。

    • powerof: コンピューターをシャットダウンします。
    • reboot: システムを再起動します。
    • halt: システムの停止を開始します。
    • kexec: kexec ベースの再起動を実行します。
    • suspend: システムを一時停止します。
    • hibernate: システムのハイバネートを開始します。
    • ignore: 何もしません。

    たとえば、電源ボタンを押したときにシステムを再起動するには、次の設定を使用します。

    HandlePowerKey=reboot
  5. 変更を保存してエディターを閉じます。