Em 12.04, eu costumava sleepd
suspender a máquina quando a bateria estava fraca ou ociosa.
Embora o sleepd não esteja empacotado para o Ubuntu 14.04 e até tenha ficado órfão pelo desenvolvedor, é possível compilar e instalar você mesmo.
Instalação no Ubuntu 12.04:
sudo apt-get install sleepd
Edite o arquivo /etc/default/sleepd
e defina o seguinte:
# -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"
Em seguida, reinicie o daemon:
sudo service sleepd restart
Ele também tem opções para permanecer acordado se houver atividade na rede, mas elas pararam de funcionar para mim.
Aparentemente, na minha máquina, a ACPI nem sempre relatava a temperatura corretamente, então eu precisava adicionar -H
para dizer ao sleepd para ler as temperaturas do upower em vez do ACPI. Descobri as leituras incorretas, após alguns syspends inesperados, adicionando -v
e assistindo o arquivo de log tail -f /var/log/*log | grep --line-buffered sleepd
.
(Eu tive um bug estranho em um laptop com a versão 12.04 de que a máquina iria acordar novamente imediatamente após a suspensão, mas apenas se o sleepd estivesse suspenso devido à bateria fraca e não ao tempo ocioso. Espero que você também não tenha essa experiência! O problema nunca aconteceu sob 14.04.)