新的开始时如何杀死以前的cronjob进程?

时间:2018-05-16 19:11:25

标签: cron wget

无法相信我在网站上找不到此问题的任何答案。

无论如何,我有一个cronjob任务,我想每隔三分钟运行一次。如果在3分钟后下一个开始时它没有完成,我希望当前正在运行的一个被杀死。不是新人要等。我必须开始新的,但旧的必须被杀死。我该怎么做?

这是我目前的代码:

*/3 * * * * wget -O /dev/null http://mywebsite.com/wp-admin/admin-ajax.php?action=my_function

任何人都知道答案吗?

1 个答案:

答案 0 :(得分:0)

厚实而快捷的方式:

查看进程ID(PID)。

修改进程以将其PID放入临时文件中。如果您的进程被称为fred,请调用文件/ var / tmp / fredpid或类似的东西。

这样,每次进程启动时,都会检查是否存在已存在的临时文件。当然,您必须对该功能进行编码,不要忘记确保进程在执行结束时删除临时文件。

粗略地说,步骤如下:

(1)如果存在/ var / tmp / fredpid,则从文件中搜索PID

(2)杀死在该PID下运行的旧进程。

(3)将当前PID放入临时文件中。

(4)恢复工作。

(5)工作结束,删除/ var / tmp / fredpid