为什么在PHP CLI中getmypid()返回0作为pid?

时间:2010-07-29 14:43:31

标签: php daemon cron command-line-interface pid

我正在开发一个长时间运行的命令行脚本,当然我希望不要多次启动它。所以我写一个.pid文件,并在启动时检查是否存在具有此类PID的进程。 问题是在Windows上它返回0作为PID,所以我总是通过PID运行得到一个进程(系统空闲有PID 0)。

有人知道如何解决这个问题吗?我可以在Windows上运行一个守护进程吗?也许修复将与pcntl_fork分道?

P.S。我正在使用Yii,它是CConsoleCommand类的基础。

1 个答案:

答案 0 :(得分:0)

我可能错了,但我不认为你是否写出.pid,在Windows上它会检查文件。

您可以检查文件是否存在,如果存在,则不再运行。并且afaik pcntl_fork不能在Windows上运行(默认情况下,使用某种* nix模拟器它可能会工作)