Установка времени ожидания для заданий cron

11

Поддерживает ли Ubuntu Linux cron (Vixie cron) время ожидания для своих заданий?

В частности, процесс будет завершен через X секунд, если к тому времени он не завершится успешно.

У меня были некоторые случаи, когда задачи зависали из-за сетевого подключения и различных проблем. Процесс останется навсегда, если вы не уберете их вручную.

Микко Охтамаа
источник

Ответы:

26

В Ubuntu существует тайм-аут команды , который является частью coreutils. Вы можете использовать это, чтобы установить тайм-аут. Более старые версии Debian / Ubuntu не собирались и не включали эту команду, но есть сопоставимый timeoutпакет, который вы можете установить.

# puppet shouldn't take more then 40 minutes!
47 * * * * root /usr/bin/timeout 2400 /usr/bin/puppet agent ...
Zoredache
источник
3
Длительность также может иметь суффикс («s» для секунд, «m» для минут, «h» для часов и «d» для дней). Таким образом, для лучшей читаемости, вышеприведенное также может быть записано как 47 * * * * root / usr / bin / timeout 40m / usr / bin / puppet agent ...
smoove666
Нет, не может. по крайней мере, не с реализацией, которую я имел при написании этого вопроса. Новая версия в coreutils имеет суффикс s. Версия, которую я имел на старых системах Debian, не была.
Зоредаче
-2

Я не думаю, что это возможно. Вы должны будете встроить проверку в ваше приложение.

Нил Х Уотсон
источник