Uma alternativa é não desligar, mas hibernar ou suspender o sistema e, em seguida, ativá-lo automaticamente usando o utilitário rtcwake
.
Por exemplo
rtcwake -s 3600 -m disk
irá imediatamente hibernar (suspender para o disco) o sistema e reiniciá-lo em 1 hora. Da mesma forma
sleep 600; rtcwake -s 60 -m mem
irá suspender a ram em 10 minutos a partir de agora e, em seguida, retomar após 60 segundos.
Você também pode ativar o sistema em um determinado momento com a opção -t
. Leva alguns segundos desde 1970 como argumento, mas você pode usar date
para converter de um formato legível por humanos, por exemplo
rtcwake -m disk -t "$(date -d '2015-02-26 16:12:00' '+%s')"