systemctl hibernate と reboot?

systemctl hibernate と reboot?

異なるボリュームに 2 つの Linux イメージがあり、その両方とは別の /boot パーティションがあります。ユーザーが夜間に「デスクトップ Linux OS」を休止状態にして、「レンダー ファーム Linux OS」に再起動できるようにしたいと考えています。

朝になると、「レンダー ファーム OS」がシャットダウンし、システムは休止状態のデスクトップ Linux セッションに戻ります。

grub2 の設定を変更して を実行するスクリプトでこれを有効にできると思います。systemctl hibernateこれでほとんどの作業は完了しますが、実際には、実行中の OS を休止状態にするだけでなく、実行中の OS を休止状態にしてから再起動する必要があるのです。

ない思われるsystemctl が休止状態と再起動の両方を実行するための準備が必要です。どちらか一方のみを実行できます。

どうすればこれを機能させることができますか?

答え1

既存の「休止状態」モードを再構成して、電源を切る代わりに再起動することができます/etc/systemd/sleep.conf

[Sleep]
HibernateMode=reboot

または、「ハイブリッド スリープ」モード (休止状態 + サスペンド) でも同じ操作を実行できます。

[Sleep]
HybridSleepMode=reboot

この値は、systemd が書き込むテキストに直接対応します/sys/power/disk


背景: systemd は実際には休止状態を実行せず、カーネルに休止状態を実行するように指示するだけです。

  1. systemd は、必要な休止状態後のモード (S4 シャットダウンの場合は「プラットフォーム」、ハイブリッド スリープの場合は「サスペンド」、カスタマイズの場合は「再起動」) をファイルに書き込みます/sys/power/disk
  2. systemd は休止コマンド「disk」をファイルに書き込みます/sys/power/state
  3. カーネルは残りの処理を実行し、コンピューターが起動するまで systemd に戻りません。

関連情報