O `at` executa um comando mais tarde se o computador estiver desligado no horário especificado?

20

Quero agendar trabalhos com at, mas não tenho certeza do que acontece se o computador for suspenso no horário especificado: o comando será executado assim que o computador for reiniciado (como em anacron) ou não será executado? (como com cron)?

Se você especificar um trabalho para ser executado absolutamente em uma data e hora específicas no passado, o trabalho será executado o mais rápido possível.

É o que a página de manual diz sobre isso, mas não corresponde ao meu caso: não quero especificar um trabalho para executar no passado, quero executá-lo no futuro e perguntar como ato tratará se o computador está dormindo então.

Isso não é uma duplicata do comando Executar no quando o computador está em suspensão porque esta pergunta pergunta se ato computador será ativado para executar o comando, nem uma duplicata de Como impedir que o atd execute trabalhos anteriores? porque é sobre como impedir a atexecução desses trabalhos "antigos" (com uma resposta muito boa!).

sobremesa
fonte

Respostas:

20

atexecuta qualquer comando que deveria ter sido executado antes quando você ativa o computador, mas pode levar alguns minutos para fazer isso. Não importa se você deu uma data específica , pois você pode testar facilmente:

$ 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

Portanto, um trabalho que você adicionar at 20:00 todaypode muito bem ser executado subitamente três dias depois, quando você ligar o computador novamente. Se você quiser evitar isso, verifique o tempo no trabalho em si, como proposto aqui: Como impedir que o atd execute trabalhos anteriores?

sobremesa
fonte