systemctl 休眠並重新啟動?

systemctl 休眠並重新啟動?

我在不同的磁碟區上有兩個 Linux 映像,以及一個與它們分開的 /boot 分割區。我希望我的用戶能夠在晚上休眠他們的“桌面 Linux 作業系統”,重新啟動到“渲染場 Linux 作業系統”。

早上,「渲染場作業系統」將關閉並將系統引導回休眠的桌面 Linux 會話。

我想我可以使用腳本來啟用此功能,該腳本修改 grub2 配置然後運行systemctl hibernate,這讓我完成了大部分工作,但實際上我需要係統不僅僅是休眠正在運行的作業系統;我需要它來休眠正在運行的作業系統,然後重新啟動。

沒有似乎可以為 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。

相關內容