Estou usando o Ubuntu 17.10 em um Intel NUC - configurei um temporizador (com persisten = false) chamando um serviço (mínimo - sem parte [Install]) que chama um script que verifica todas as noites se o sistema está ocioso e, em seguida, define um temporizador de ativação usando rtcwake -m não -t $ TIME que sai com 0 caso contrário (não está ocioso) sai com 1, o serviço tem uma segunda linha Exec executada somente depois que o script retornou 0 contendo: systemctl hibernate abaixo)
Assim, tudo funciona bem - detecção de inatividade, envio do sistema para a hibernação e ativação no dia seguinte. O único problema é: De acordo com o syslog - o serviço de "hibernação" é chamado novamente mais ou menos diretamente após o wake e envia o sistema diretamente para a hibernação (que pelo menos lógico, como o sistema está ocioso ...). fail-safe no script, mas me incomoda que não consiga descobrir por que o serviço de "hibernação" é chamado novamente depois da inicialização.
Então, alguma idéia / sugestão? Ficaria satisfeito :) Btw, eu tentei rtcwake -m disco ... diretamente do script - mesmo resultado acima. Também um segundo temporizador que desperta o sistema - infelizmente só funciona com o sleep / suspend-to-ram mas não do hibernate / suspend-to-disk.
O temporizador:
[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
O serviço:
[Unit]
Description=Calls hibernate and wake set skript
[Service]
Type=oneshot
ExecStart=/usr/local/bin/hibernate_til_tomorrow.sh
ExecStart=/bin/systemctl hibernate