我已经安排了一个CRON,它每五分钟调用/执行一次PHP脚本。 PHP脚本执行以下任务
到目前为止一切正常,根据用户上传数据的大小,该过程平均需要35到40分钟才能完成。
问题,无论如何,一旦cron启动,就会杀死或停止执行PHP脚本。可以是一个按钮,让用户停止执行,上传新数据并等待CRON运行。我可以负责重置所有的标志和数据,这就是我想弄清楚PHP脚本的杀戮。
我做了一些谷歌,并认为我可以使用一些命令,如:
Killall -9 PHP
杀死服务器上运行的所有php进程,但不知道如何通过PHP执行此操作。
答案 0 :(得分:5)
试试这个:
ps aux |grep 'part_of_the_name_of_your_script'|awk '{print $2}' |xargs kill -9 {}
或者在您的crontab文件中使用crun和变量CRUN_TIME
见crun -h
答案 1 :(得分:1)
答案 2 :(得分:1)
lock file非常适合这项任务。 PHP脚本可以尝试创建新文件,如果没有创建,则可以安全地知道该脚本是目前唯一运行的脚本。如果存在文件,则只需退出脚本即可。
示例:
<?php
if (file_exists('/var/run/my-script')) {
exit(1); // already running
}
file_put_contents('/var/run/my-script', getmypid());
/** Business Logic **/
unlink('/var/run/my-script');
exit(0);
?>