Как увеличить время ожидания для cronjob / crontab? - PullRequest
12 голосов
/ 01 марта 2009

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

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

Как мне увеличить время ожидания cronjob?

PS - 1. Скрипт, который я запускаю в cronjob, является скриптом bash, который запускает скрипт на python.

Ответы [ 2 ]

19 голосов
/ 15 октября 2010

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

Из справочной страницы bash:

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

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


КСТАТИ: Извините, что опубликовал это как ответ, но у меня пока недостаточно очков для добавления комментариев.

5 голосов
/ 01 марта 2009

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

...