我有一个每小时运行一次的cronjob,偶尔会花费太多的时间来运行,有没有什么办法可以设置最大的运行时间,如果超过这个,工作就会被终止?
这是在Ubuntu 10.04服务器上。
谢谢,jebw
尝试timeout命令。 例如:
0 * * * * timeout -2 3540 /path/to/your_command.sh
如果在59分钟内没有完成,将发送一个SIGINT给你的命令。
不。 我们这样做的方式是用一个锁文件创build一个脚本,然后让脚本在开始运行之前检查该锁文件,以便检查它是否已经在运行,并确定它是否运行,如果等待另一个结束还是杀死对方之后再跑步。
locking文件只是一个空文件或一个文件,另一个脚本PID保存在/var/run或/var/lock 。
cakemox的答案是最好的。 否则,只需将pid插入一个文件中,或者在一分钟之前使用killall就可以杀死进程。