如何增加cronjob/crontab的超时时间?

12

我写了一个脚本,从solr获取日期在指定时间范围内的数据,并且我使用它作为每日定时任务运行。

问题是cronjob不能完成任务。如果我手动运行脚本(同样的时间段),它就能正常工作。如果我减少指定的时间段,脚本也能够从cronjob中运行。所以我猜测cronjob在运行脚本时超时了,因为需要处理大量的数据。

如何增加cronjob的超时时间?

PS - 1. 我在cronjob中运行的脚本是一个bash脚本,它会运行一个python脚本。

2个回答

21
请注意,建议使用ulimit -t解决方案将限制所使用的CPU时间,而不是实际经过的时间。
来自于bash手册:
ulimit [-HSTabcdefilmnpqrstuvx [limit]]
...
-t     The maximum amount of cpu time in seconds

更重要的是,cron首先不会强制设置任何超时。它只是启动进程并继续运行。
顺便说一下:很抱歉以回答的形式发布这个问题,但我没有足够的积分添加评论。

5

在运行脚本之前,在cronjob中使用 ulimit -t [秒数] 。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接