2013-05-02 119 views
-1

我一直在寻找(搜索谷歌)PHP脚本,它将检查一个特定的PHP进程/函数是否正在运行,但无法找到一个在Windows非批处理脚本中运行的程序/函数。检查Windows服务器中运行的PHP进程

我基本上需要确保一些进程的运行不会重叠,无论脚本是从网页执行还是从Windows计划执行。一些进程应该只发生一次。

我已经在这里尝试了几乎所有的东西http://php.net/manual/en/function.getmypid.php但他们似乎没有工作。

任何帮助表示赞赏。

+0

记录其开始和结束,其他进程可以检查它是否基于日志运行 – 2013-05-02 00:49:11

+0

可能的重复http://stackoverflow.com/questions/1129439/how-to-find-out-a-specific-process- is-still-running-in-php和http://stackoverflow.com/questions/1656350/php-check-process-id – Grmn 2013-05-02 00:49:37

回答

2
  1. 在脚本启动时创建一个“锁定”文件。
  2. 脚本结束后将其删除。
  3. 如果脚本找到锁定文件,请不要启动脚本。

如果您有多个不同的脚本,只需以不同的方式命名锁定文件。

+0

谢谢。那么像这样的事情也会为每个用户单独工作吗?所以说一个用户有10个浏览器窗口在同一页面打开,我只想为每个用户运行一次脚本,例如获取用户消息。我只是根据用户会话命名锁文件(或类似的东西)。 – puks1978 2013-05-02 01:13:19

+0

当然,或者将它存储在他们的会话中,因为它为您处理文件。 – 2013-05-02 01:18:35

+0

太好了。感谢并将实施这一点。 – puks1978 2013-05-02 01:20:25

相关问题