systemctl hibernate И перезагрузка?

systemctl hibernate И перезагрузка?

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

Связанный контент