¿`At` ejecuta un comando más tarde si la computadora está apagada a la hora especificada?

20

Quiero programar trabajos con at, pero no estoy seguro de qué sucede si la computadora se suspende a la hora especificada: ¿Se ejecutará el comando tan pronto como la computadora se despierte nuevamente (como con anacron) o no se ejecutará en absoluto? (como con cron)?

Si especifica que un trabajo se ejecute absolutamente en un momento y fecha específicos en el pasado, el trabajo se ejecutará lo antes posible.

Eso es lo que dice la página de manual sobre eso, sin embargo, no coincide con mi caso: no quiero especificar un trabajo para ejecutar en el pasado, quiero ejecutarlo en el futuro y preguntar cómo atlo tratará si la computadora está durmiendo entonces.

Este no es un duplicado de Ejecutar en el comando cuando la computadora está en reposo porque esta pregunta pregunta si atdespertará la computadora para ejecutar el comando, ni tampoco es un duplicado de ¿Cómo evitar que atd ejecute trabajos pasados? porque se trata de cómo evitar la atejecución de esos "viejos" trabajos (¡aunque con una muy buena respuesta!).

postre
fuente

Respuestas:

20

atejecuta cualquier comando que debería haberse ejecutado antes cuando activa la computadora, pero puede tardar unos minutos en hacerlo. Ni siquiera importa si le dio una fecha específica , ya que puede probar fácilmente:

$ sudo date -s "2017-12-15 23:57:00"
$ at 23:59 17-12-15 <<<'echo executed >at_test'
job 1 at Fri Dec 15 23:59:00 2017
# suspend, wake after four minutes
$ date
Sat Dec 16 00:01:17 CET 2017
$  cat <at_test || atq
bash: /home/dessert/at_test: No such file or directory
1       Fri Dec 15 23:59:00 2017 a dessert
# wait a few minutes
$  cat <at_test || atq
executed

Por lo tanto, un trabajo que agregue at 20:00 todaypuede muy bien ejecutarse repentinamente tres días después cuando encienda su computadora nuevamente. Si desea evitar esto, puede verificar el tiempo en el trabajo como se propone aquí: ¿Cómo evitar que atd ejecute trabajos pasados?

postre
fuente