Em seu comando de teste:
sudo rtcwake -u -s 120 -m mem
o -u
faz com que rtcwake assuma que o relógio do seu computador (no BIOS) está definido para a hora UTC. No entanto, quando você testa por um tempo relativo (120 segundos neste caso), não importa realmente a hora em que o relógio está configurado, então funciona de qualquer maneira.
O script que é executado pelo cron usa a opção -l
, fazendo com que rtcwake assuma que o relógio do seu computador está configurado para a hora local.
Em ambos os casos, você deve ser consistente, em qual opção você usa e você deve verificar suas configurações reais da BIOS. Para testar rtcwake com um tempo absoluto, use a opção -t:
sudo rtcwake -m mem -l -t $(date +%s -d ‘today 19:45’)
onde assumi que o relógio do seu computador está definido para a hora local.
Felicidades