
Tenho o hábito de definir rapidamente alguns lembretes com:
sleep $duration; notify-send $reminder_message
Mas ultimamente tenho tido que me movimentar e mudar frequentemente de mesa. Percebi que $reminder_message
comecei a chegar mais tarde do que pretendia. Acontece que o culpado é: quando fecho a tampa, ela suspende tudo junto com o meu sleep
comando.
Veja como descobri:
date; echo $duration; date -d "+$duration sec"; sleep "$duration"s; date
Se eu fechar minha tampa entre o comando acima, então: date
e date -d "+$duration sec"
não corresponde. No entanto, se a tampa não estiver fechada, eles combinam!
Então, para uma solução rápida, desativei a suspensão com fechamento da tampa com:
HandleLidSwitch=ignore
(seguindoesta resposta do ask-ubuntu)
Agora meus comandos de sono funcionam como eu queria. Mas desabilitar completamente a suspensão, sinto que é umamuito agressivoconsertar e umexagero!
Existe uma solução mais simples? Só quero que meus sleep
comandos não sejam interrompidos quando fecho a tampa.
Responder1
Sem ofensa, mas podemos ter um problema XY aqui. Sua impressão de que a solução para o seurealproblema sleep
pode estar errado. sleep
verifica até que o tempo especificado tenha passado e esse tempo para quando o computador entra em suspensão.
Em vez disso, considere usar o at
comando para agendar trabalhos específicos para ocorrerem em um horário específico.
at
funciona assim:
echo "command_to_be_run" | at +30 minutes
agendará um trabalho 30 minutos depois.
at
é muito parecido com cron
, mas um trabalho é executado apenas uma vez. Ele não é instalado por padrão, mas pode ser instalado com o sudo apt install at
.