php - 终止或停止执行由 CRON 启动的 PHP 脚本?

标签 php cron

我已经安排了一个 CRON,它每五分钟调用/执行一个 PHP 脚本。 PHP 脚本执行以下任务

  1. 检查数据库中的标志值以确定之前的运行是否仍在执行。数据库中的值为 1 表示进程仍在运行,而值为 0 表示它不是。
  2. 如果标志值为 1,则退出 PHP,否则继续下一步。
  3. 将数据库中的标志值从 0 更新为 1。
  4. 执行业务逻辑。
  5. 将标志值从 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/

相关文章:

linux - Crontab 每 15 分钟运行一次,除了凌晨 3 点?

linux - cron 无法运行 R 脚本

python - 如何在 GAE Python 上从 cron 启动 mapreduce 作业

php - 许多网址的Javascript iframe加载时间功能

php - 无法使用php jquery和ajax在mysql中输入数据

php - 在 foreach 循环中删除数组元素

php - PHP 中的 XTEA 加密和 C 中的解密

cron - 错误 : Ignoring/etc/logrotate. conf 因为它可由组或其他人写入

php - Cron 作业识别同一 url 中的多次访问?

php - 在 Doctrine2 中使用部分查询和复合键时出现 "No mapped field"