我编写了一个脚本,可以从solr获取数据,其日期在指定的时间段内,并且我使用每日cron运行脚本。
问题是cronjob没有完成任务。如果我手动运行脚本(在相同的时间段内),它运行良好。如果我减少指定的时间段,脚本也会从cron运行。所以我的猜测是cronjob在运行脚本时超时,有很多数据需要处理。
如何增加cronjob的超时?
PS - 1.我在cronjob中运行的脚本是一个运行python脚本的bash脚本。
答案 0 :(得分:19)
请注意,建议的ulimit -t
解决方案将限制使用的CPU时间量,而不是已经过的实际时间量。
来自bash
联机帮助页:
ulimit [-HSTabcdefilmnpqrstuvx [limit]]
...
-t The maximum amount of cpu time in seconds
更重要的是,cron首先不会施加任何超时。它只是启动任何过程并继续前进。
BTW:很抱歉发布此答案,但我还没有足够的积分来添加评论。
答案 1 :(得分:5)
在运行脚本之前,您可以尝试在cronjob中使用ulimit -t [秒数]。