我有一个预定的cron作业(实际上是一个shell脚本)。我想限制脚本执行时间,因为它可以工作不可接受的长时间。出于某种原因,我无法限制脚本内部的脚本执行时间。实际上,如果运行时间超过N小时,我希望我的系统强制终止任务。请指教。
答案 0 :(得分:20)
我自己回答是因为没有人回答。
0 * * * * timeout -s 9 3540 /path/to/your_command.sh
如果尚未在59分钟内完成,将向您的命令发送SIGINT。
答案 1 :(得分:7)
使用-s 9有点极端,因为它不会让进程进行任何清理。是的,它会杀死这个过程,如果它可以被杀死,但是>要求优雅挂断的90%的时间a -s 1就足够了。