No interrumpir el comando de suspensión al cerrar la tapa

No interrumpir el comando de suspensión al cerrar la tapa

Tengo la costumbre de configurar rápidamente algunos recordatorios con:

sleep $duration; notify-send $reminder_message

Pero últimamente he tenido que moverme y cambiar a menudo de escritorio. Noté que $reminder_messagecomencé a llegar más tarde de lo previsto. Resulta que el culpable es: que cuando cierro la tapa se suspende todo junto con mi sleepcomando.

Así es como lo descubrí:

date; echo $duration; date -d "+$duration sec"; sleep "$duration"s; date

Si cierro la tapa entre el comando anterior, entonces: datey date -d "+$duration sec"no coinciden. Sin embargo, si la tapa no está cerrada, ¡coinciden!

Entonces, para una solución rápida, deshabilité la suspensión con cierre de tapa con:

HandleLidSwitch=ignore

(siguienteesta respuesta de pregunta-ubuntu)

Ahora mis comandos de sueño funcionan como quería. Pero deshabilitar la suspensión por completo creo que es unademasiado agresivoarreglar y unexagerar!

¿Existe una solución más sencilla? Sólo quiero que mis sleepórdenes no sean interrumpidas cuando cierro la tapa.

Respuesta1

No te ofendas, pero es posible que tengamos un problema XY aquí. Su impresión de que la solución a surealEl problema sleeppuede estar equivocado. sleepcomprueba hasta que ha pasado el tiempo especificado, y ese tiempo se detiene cuando la computadora duerme.

En su lugar, considere usar el atcomando para programar trabajos específicos para que se realicen en un momento específico.

atfunciona así:

echo "command_to_be_run" | at +30 minutes

programará un trabajo 30 minutos más tarde.

ates muy parecido cron, pero un trabajo se ejecuta sólo una vez. No se instala de forma predeterminada, pero se puede instalar con sudo apt install at.

información relacionada