Чи виконує команду `at` пізніше команду пізніше, якщо комп'ютер вимкнений у вказаний час?


20

Я хочу запланувати завдання at, але я не впевнений, що станеться, якщо комп'ютер призупинено у визначений час: Чи буде команда виконана, як тільки комп'ютер знову прокинеться (як з anacron), чи не буде виконуватися взагалі (як з cron)?

Якщо ви вказали завдання, яке повністю виконується в певний час і дату в минулому, воно буде запущено якнайшвидше.

Ось що говорить на цьому сторінці, але це не зовсім відповідає моєму випадку: я не хочу вказувати роботу, яку потрібно запустити в минулому, я хочу запустити її в майбутньому і запитати, як з цим atпоставитись, якщо комп'ютер спить тоді.

Це не дублікат програми Run at command, коли комп'ютер спить, оскільки це питання задає питання про те, чи atбуде будильник комп'ютером виконувати команду, а також це не дублікат того, як запобігти запущенню завдань atd? адже мова йде про те, як запобігти atвиконанню «старих» завдань (хоча дуже хороша відповідь!).

Відповіді:


20

atвиконує будь-яку команду, яка мала бути виконана раніше, коли ви будите комп’ютер, але для цього може знадобитися кілька хвилин. Навіть не важливо, ви вказали йому конкретну дату, оскільки ви можете легко протестувати:

$ 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

Тому робота, яку ви додали за допомогою, at 20:00 todayдуже добре може бути виконана раптово через три дні, коли ви знову ввімкнете комп'ютер. Якщо ви хочете цього не допустити, ви можете перевірити час роботи, як це запропоновано тут: Як не допустити, щоб atd не виконував минулі завдання?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.