Я использую Ubuntu 17.10 на Intel NUC - я установил таймер (с persisten = false), вызывающий службу (минимальный - номер [Install]), который вызывает скрипт, который проверяет каждый вечер, если система idle, а затем устанавливает таймер слежения, используя rtcwake -m no -t $ TIME, чем выходы с 0 в противном случае (systen not idle) завершает работу с 1, служба имеет вторую строку Exec, выполняемую только после того, как возвращаемый сценарий 0 просто содержит: systemctl hibernate (см. ниже)
Итак, все работает, прекрасное - незанятое обнаружение, отправка системы в спящий режим и разбудить ее на следующий день. Единственная проблема заключается в следующем: согласно syslog - услуга «гибернация» вызывается снова более или менее непосредственно после пробуждения и отправляет систему непосредственно в спящий режим (что по крайней мере логично, поскольку система простаивает ...) я мог бы, конечно, создать сбой в сценарии, но мне кажется, что я не могу понять, почему услуга «гибернации» снова вызывается сразу после загрузки.
Итак, любые идеи / подсказки? Было бы приятно :) Кстати, я пробовал rtcwake -m диск ... непосредственно из скрипта - тот же результат, что и выше. Кроме того, второй таймер, который просыпает систему, печально, что работает только со спящим / приостановленным режимом, но не спящим / приостановленным на диск.
Таймер:
[Unit]
Description=hibernate if idle set wake timer
[Timer]
OnCalendar=*-*-* 00,01,02,03,04,05,22,23:00,30:00
Unit=hibernate_if_idle_set_wake.service
Persistent=false
[Install]
WantedBy=timers.target
Услуга:
[Unit]
Description=Calls hibernate and wake set skript
[Service]
Type=oneshot
ExecStart=/usr/local/bin/hibernate_til_tomorrow.sh
ExecStart=/bin/systemctl hibernate