Il 12.04 sleepd
sospendevo la macchina quando la batteria era scarica o la macchina era inattiva.
Sebbene sleepd non sia pacchettizzato per Ubuntu 14.04 ed è stato addirittura reso orfano dal suo sviluppatore, è possibile compilarlo e installarlo da soli.
Installazione su Ubuntu 12.04:
sudo apt-get install sleepd
Modifica il file /etc/default/sleepd
e imposta quanto segue:
# -E Do not poll events (since they weren't working for me).
# -c 60 Poll every 60 seconds.
# -u 900 Sleep after 15 minutes idle time when on battery,
# -U 3600 or 60 minutes when on AC power,
# -b 3 or when battery power drops below 3%.
# -H (optional) Use upower instead of ACPI.
PARAMS="-E -c 60 -u 900 -U 3600 -b 3"
Quindi riavviare il demone:
sudo service sleepd restart
Ha anche opzioni per rimanere sveglio se c'è attività di rete, ma questi hanno smesso di funzionare per me.
Sul mio computer, a quanto pare ACPI non riportava sempre correttamente la temperatura, quindi dovevo aggiungere -H
per dire a sleepd di leggere le temperature da upower anziché ACPI. Ho scoperto le letture errate, dopo alcuni imprevisti, aggiungendo -v
e guardando il file di log con tail -f /var/log/*log | grep --line-buffered sleepd
.
(Ho avuto uno strano bug su un laptop con 12.04 che la macchina si sarebbe risvegliata immediatamente dopo la sospensione, ma solo se sleepd fosse sospeso a causa della batteria scarica, non a causa del tempo di inattività. Spero che anche tu non abbia questa esperienza! Il problema non si è mai verificato in 14.04.)