我已经安排了一个 CRON,它每五分钟调用/执行一个 PHP 脚本。 PHP 脚本执行以下任务
- 检查数据库中的标志值以确定之前的运行是否仍在执行。数据库中的值为 1 表示进程仍在运行,而值为 0 表示它不是。
- 如果标志值为 1,则退出 PHP,否则继续下一步。
- 将数据库中的标志值从 0 更新为 1。
- 执行业务逻辑。
- 将标志值从 1 更新回 0,以便在数据在用户表中可用时执行下一个 CRON。
到目前为止一切正常,根据用户上传数据的大小,该过程平均需要 35 到 40 分钟才能完成。
问题,一旦由 cron 启动,是否有办法杀死或停止执行 PHP 脚本。可能是一个让用户停止执行、上传新数据和等待 CRON 运行的按钮。我可以负责重置所有标志和数据,这只是我想要弄清楚的 PHP 脚本的杀戮。
我做了一些谷歌并认为我可以使用一些命令,例如:
Killall -9 PHP
杀死服务器上运行的所有 php 进程,但不确定如何通过 PHP 执行此操作。
最佳答案
试试这个:
ps aux |grep 'part_of_the_name_of_your_script'|awk '{print $2}' |xargs kill -9 {}
或者在您的 crontab 文件中使用 crun 和变量 CRUN_TIME
参见 crun -h
关于php - 终止或停止执行由 CRON 启动的 PHP 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18064190/