Подтвердить что ты не робот

Как увеличить тайм-аут для cronjob/crontab?

Я написал script, который получает данные из solr, для которых дата находится в течение указанного периода, и я запускаю script используя как ежедневный cron.

Проблема заключается в том, что cronjob не выполняет задачу. Если я вручную запускаю script (за тот же период времени), он работает хорошо. Если я сокращаю указанный период времени, script также запускается из cron. Таким образом, моя догадка - cronjob - это тайм-аут при запуске script, есть много данных для обработки.

Как увеличить тайм-аут для cronjob?

PS - 1. script Я запущен в cronjob - это bash script, который запускает python script.

4b9b3361

Ответ 1

Вы можете попытаться использовать ulimit -t [число секунд] в cronjob перед запуском script.

Ответ 2

Обратите внимание, что предлагаемое решение ulimit -t ограничивает количество используемого времени процессора, а не количество фактического времени, которое прошло.

Из bash manpage:

ulimit [-HSTabcdefilmnpqrstuvx [limit]]
...
-t     The maximum amount of cpu time in seconds

И что еще более важно, cron не налагает никаких тайм-аутов в первую очередь. Он просто запускает любой процесс и движется дальше.


BTW: Извините, что разместил это как ответ, но у меня недостаточно баллов, чтобы добавлять комментарии.