PHP:如何检查php脚本是否已经运行?

时间:2013-03-06 13:39:16

标签: php

我正在使用php脚本来阅读我的应用程序的退回地址收到的电子邮件,并使用它们进行操作。该脚本计划与cron作业一起运行,但我无法控制它,我没有权限在服务器上写文件(因此几乎消除了文件锁定机制)。还有另一种方法可以确保我在任何给定时间只运行一个脚本实例吗?服务器正在运行linux。

2 个答案:

答案 0 :(得分:1)

我想你可以试试这个:

// we use ourselves as the lock file
if (false === ($f = fopen(__FILE__, 'r'))) {
    die("Could not open lock file");
}
if (false === flock($f, LOCK_EX)) {
    die("Could not obtain lock");
}
// do your stuff
flock($f, LOCK_UN);
fclose($f);

您不需要写访问权来使用咨询锁;这当然是假设您的配置中启用了flock()

答案 1 :(得分:0)

它有点脏,但

if(file_exists("block.bin")) {
  //already running
}

file_put_contents("block.bin", 1);

 //do stuff

unlink("block.bin");