检查php脚本是否仍在运行

时间:2010-04-14 01:52:35

标签: php cron windows-shell

我有一个监听jabber服务器并相应响应的脚本。虽然它不应该停止,但昨晚它确实如此。现在我想每分钟运行一个cron作业来检查脚本是否正在运行,如果没有则启动它。

问题是,如何检查特定脚本是否仍在运行?

已发布一些解决方案here,但这些都是针对Linux的,而我正在寻找Windows解决方案。有什么想法吗?感谢。

3 个答案:

答案 0 :(得分:4)

快速而肮脏的解决方法可能是脚本更新数据库中的行,并将日期列设置为CURRENT_TIMESTAMP。让cron第二个脚本检查此行的时间戳是否是最近的。

答案 1 :(得分:0)

这是我通常做的事情:

  1. 创建一个状态目录,例如:/ data / status /
  2. 在我的脚本上,检查状态文件是否存在
    1. 如果确实存在,请退出脚本
    2. 如果不存在,继续该过程
  3. 但是,这里存在一个问题:如果脚本死了并且没有删除状态文件怎么办?

    你可以像这样添加一点保存检查:

    1. 每分钟更新一次状态文件
    2. 对于每个cron start,检查状态文件是否上次更新,例如:10或30分钟前(我们可以假设我们的cron脚本已经死了)我们可以从cron脚本开始。

答案 2 :(得分:0)

我遇到了同样的问题,我用这段代码解决了:

file_put_contents("status.txt","ping");

我把它放在我脚本的循环中

所以,我检查文件的最后修改日期以查看脚本是否处于活动状态

不要让HD过载,你可以这样做:

$i++
if( $i%100 == 0)
    file_put_contents("status.txt","ping");

这将在$ i == 100或200或300等时编写文件...

这是一种解决方法