Não interrompa o comando sleep ao fechar a tampa

Não interrompa o comando sleep ao fechar a tampa

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_messagecomecei a chegar mais tarde do que pretendia. Acontece que o culpado é: quando fecho a tampa, ela suspende tudo junto com o meu sleepcomando.

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: datee 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 sleepcomandos 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 sleeppode estar errado. sleepverifica até que o tempo especificado tenha passado e esse tempo para quando o computador entra em suspensão.

Em vez disso, considere usar o atcomando para agendar trabalhos específicos para ocorrerem em um horário específico.

atfunciona 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.

informação relacionada