
У меня есть два образа 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 на самом деле не выполняет спящий режим, он просто сообщает ядру о необходимости этого:
- systemd записывает желаемый режим после гибернации («platform» для выключения S4, «suspend» для гибридного сна или «reboot» для вашей настройки) в файл
/sys/power/disk
. - systemd записывает команду гибернации «disk» в файл
/sys/power/state
. - Ядро делает все остальное и не возвращается в systemd, пока компьютер не проснется.