无法相信我在网站上找不到此问题的任何答案。
无论如何,我有一个cronjob任务,我想每隔三分钟运行一次。如果在3分钟后下一个开始时它没有完成,我希望当前正在运行的一个被杀死。不是新人要等。我必须开始新的,但旧的必须被杀死。我该怎么做?
这是我目前的代码:
*/3 * * * * wget -O /dev/null http://mywebsite.com/wp-admin/admin-ajax.php?action=my_function
任何人都知道答案吗?
答案 0 :(得分:0)
厚实而快捷的方式:
查看进程ID(PID)。
修改进程以将其PID放入临时文件中。如果您的进程被称为fred,请调用文件/ var / tmp / fredpid或类似的东西。
这样,每次进程启动时,都会检查是否存在已存在的临时文件。当然,您必须对该功能进行编码,不要忘记确保进程在执行结束时删除临时文件。
粗略地说,步骤如下:
(1)如果存在/ var / tmp / fredpid,则从文件中搜索PID
(2)杀死在该PID下运行的旧进程。
(3)将当前PID放入临时文件中。
(4)恢复工作。
(5)工作结束,删除/ var / tmp / fredpid