12.4. システムのシャットダウン、サスペンド、およびハイバネート
システム管理者は、さまざまな電源管理オプションを使用して電力消費を管理したり、適切なシャットダウンを実行してすべてのデータを確実に保存したり、システムを再起動して変更や更新を適用したりできます。
12.4.1. システムのシャットダウン
システムをシャットダウンする場合は、systemctl
ユーティリティーを使用するか、shutdown
コマンドを使用してこのユーティリティーを呼び出します。
shutdown
を使用すると、次の利点があります。
-
time
引数を使用してシャットダウンをスケジュールできます。また、この引数を使用すると、システムのシャットダウンがスケジュールされていることがユーザーに警告されます。 - シャットダウンをキャンセルできます。
12.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
関連情報
-
shutdown(8)
の man ページ - systemctl コマンドを使用したシステムのシャットダウン
12.4.3. systemctl コマンドを使用したシステムのシャットダウン
システム管理者は、systemctl
コマンドを使用して、システムをシャットダウンしてマシンの電源をオフにしたり、マシンの電源をオフにせずにシステムをシャットダウンして停止したりできます。
前提条件
- Root アクセス
手順
systemctl
コマンドを使用して、次のタスクのいずれかを実行します。
システムをシャットダウンし、マシンの電源をオフにします。
# systemctl poweroff
マシンの電源を切らずにシステムをシャットダウンして停止します。
# systemctl halt
デフォルトでは、これらのコマンドのいずれかを実行すると、systemd
が現在システムにログインしているすべてのユーザーに情報メッセージを送信します。systemd
がメッセージを送信しないようにするには、コマンドラインオプション --no-wall
を付けてコマンドを実行します。
12.4.4. システムの再起動
システムを再起動すると、systemd
は実行中のすべてのプログラムとサービスを停止します。システムはシャットダウンすると、すぐに再起動します。システムの再起動は、次の場合に役立ちます。
- 新しいソフトウェアまたは更新をインストールした後
- システム設定を変更した後
- システムの問題のトラブルシューティングを行う場合
前提条件
- Root アクセス
手順
システムを再起動します。
# systemctl reboot
デフォルトでは、このコマンドを使用すると、systemd
が現在システムにログインしているすべてのユーザーに情報メッセージを送信します。systemd
がこのメッセージを送信しないようにするには、--no-wall
オプションを指定してこのコマンドを実行します。
12.4.5. システムのサスペンドおよびハイバネートによる電力消費の最適化
システム管理者は、電力消費を管理し、システムのエネルギーを節約し、システムの現在の状態を保存できます。これを行うには、次のモードのいずれかを適用します。
- サスペンド
- サスペンドは、システムの状態を RAM に保存し、マシンにある、RAM モジュール以外のほとんどのデバイスの電源を切ります。マシンの電源を戻すと、システムは再起動せずに RAM からその状態を復元します。システムの状態がハードディスクではなくメモリーに保存されるため、システムは、ハイバネートよりも、サスペンドモードからのほうがはるかに早く復元できます。ただし、サスペンドされたシステム状態は停電に対して脆弱です。
- ハイバネート
- ハイバネートは、システムの状態をハードディスクドライブに保存し、マシンの電源を切ります。マシンの電源を戻すと、システムは再起動せずに、保存されたデータからその状態を復元します。システムの状態がメモリーではなくハードディスクに保存されるため、マシンでメモリーモジュールへの電源供給を維持する必要はありません。ただし、システムは、サスペンドモードより、ハイバネーションから復元する方がはるかに遅くなります。
- ハイブリッドスリープ
- これは、ハイバネートとサスペンドの両方の要素を組み合わせたものです。システムはまず現在の状態をハードディスクドライブに保存し、サスペンドと同様の低電力状態に入ります。これにより、システムはより迅速に再開できるようになります。ハイブリッドスリープの利点は、スリープ状態中にシステムの電源が失われた場合でも、ハイバネーションと同様に、ハードディスクに保存されたイメージから以前の状態を回復できることです。
- サスペンドしてからハイバネート
-
このモードでは、まずシステムがサスペンドされます。これにより、現在のシステムの状態が RAM に保存され、システムが低電力モードになります。一定期間 (
HibernateDelaySec
パラメーターで定義可能) サスペンド状態が続くと、システムはハイバネートします。ハイバネーションは、システムの状態をハードディスクドライブに保存し、システムを完全にシャットダウンします。サスペンドしてからハイバネートするモードには、バッテリー電力を節約しながら、作業をすぐに再開できるという利点があります。さらに、このモードでは、停電に備えてデータが確実に保存されます。
前提条件
- Root アクセス
手順
適切な省電力方法を選択します。
システムをサスペンドします。
# systemctl suspend
システムをハイバネートします。
# systemctl hibernate
システムをハイバネートおよびサスペンドします。
# systemctl hybrid-sleep
システムをサスペンドしてからハイバネートします。
# systemctl suspend-then-hibernate
12.4.6. systemctl を使用した電源管理コマンドの概要
以下の systemctl
コマンドを使用して、システムの電源管理を制御できます。
systemctl コマンド | 説明 |
---|---|
| システムを停止します。 |
| システムの電源を切ります。 |
| システムを再起動します。 |
| システムをサスペンドします。 |
| システムをハイバネートします。 |
| システムをハイバネートおよびサスペンドします。 |
12.4.7. 電源ボタンの動作の変更
コンピューターの電源ボタンを押すと、デフォルトではシステムが一時停止またはシャットダウンします。この動作は好みに応じてカスタマイズできます。
12.4.7.1. systemd の電源ボタンの動作を変更する
非グラフィカルな systemd
ターゲットの電源ボタンを押すと、デフォルトではシステムがシャットダウンします。この動作は好みに応じてカスタマイズできます。
前提条件
- 管理アクセスがある。
手順
-
/etc/systemd/logind.conf
設定ファイルを開きます。 -
HandlePowerKey=poweroff
という行を探します。 -
行が
#
記号で始まる場合は、この記号を削除して設定を有効にします。 poweroff
を次のオプションのいずれかに置き換えます。poweroff
- コンピューターをシャットダウンします。
reboot
- システムを再起動します。
halt
- システムの停止を開始します。
kexec
-
kexec
の再起動を開始します。 suspend
- システムをサスペンドします。
hibernate
- システムのハイバネートを開始します。
ignore
- 何もしません。
たとえば、電源ボタンを押したときにシステムを再起動するには、次の設定を使用します。
HandlePowerKey=reboot
- 変更を保存してエディターを閉じます。
次のステップ
- グラフィカルセッションを使用する場合は、GNOME の電源ボタンも設定します。「GNOME の電源ボタンの動作を変更する」 を参照してください。
12.4.7.2. GNOME の電源ボタンの動作を変更する
グラフィカルログイン画面またはグラフィカルユーザーセッションで電源ボタンを押すと、デフォルトではマシンがサスペンドします。これはユーザーが物理的に電源ボタンを押した場合と、リモートコンソールから仮想の電源ボタンを押した場合の両方で起きます。電源ボタンの動作は、別のものを選択することもできます。
前提条件
-
systemd
の電源ボタンの動作を設定した。「systemd の電源ボタンの動作を変更する」 を参照してください。
手順
/etc/dconf/db/local.d/01-power
ファイルに、システム全体の設定用のローカルデータベースを作成します。次の内容を入力します。[org/gnome/settings-daemon/plugins/power] power-button-action='suspend'
suspend
を次の電源ボタンのアクションのいずれかに置き換えます。nothing
- 何も実行しません。
suspend
- システムをサスペンドします。
hibernate
- システムをハイバネートします。
interactive
何を実行するかをユーザーに質問するポップアップクエリーを表示します。
interactive モードでは、電源ボタンを押すと 60 秒後にシステムの電源が自動的にオフになります。ただし、ポップアップクエリーとは異なる動作を選択することもできます。
オプション: ユーザーの設定をオーバーライドし、ユーザーが設定を変更できないようにします。
/etc/dconf/db/local.d/locks/01-power
ファイルに次の設定を入力します。/org/gnome/settings-daemon/plugins/power/power-button-action
システムデータベースを更新します。
# dconf update
- システム全体の設定を有効にするために、ログアウトして再度ログインします。