我有一个 php 脚本,我在 CentOS 上每 10 分钟通过 cron 执行这个脚本。
问题是如果 cron 作业需要超过 10 分钟,那么同一个 cron 作业的另一个实例将启动。
我尝试了一个技巧,那就是:
- cron 作业开始时使用 php 代码创建一个锁定文件(与 pid 文件相同)。
- 作业完成时使用 php 代码删除锁定文件。
- 当任何新的 cron 作业开始执行脚本时,我检查了锁定文件是否存在,如果存在,则中止脚本。
但是可能存在一个问题,即当锁定文件由于某种原因没有被脚本删除或删除时。cron 将永远不会再次启动。
如果 cron 作业已经在运行,我有什么办法可以再次停止执行它,使用 Linux 命令或类似的命令?