PHP运行多个实例问题

时间:2014-11-24 20:47:34

标签: regex linux bash sed

 5877 pts/1    S      0:00 php cron_run.php
 5879 pts/1    S      0:00 sh -c /usr/bin/php /srv/www/videofix.d.com/public_html/v/complete.php
 5880 pts/1    S      0:00 /usr/bin/php /srv/www/videofix.d.com/public_html/v/complete.php
 5884 pts/1    S      0:00 sh -c php 2.php 4584.2
 5885 pts/1    S      0:01 php 2.php 4584.2

我试图用ps斧头看到我的cron_run.php

执行complete.php

但似乎有2个实例正在运行。

1 is with sh -c
1 is without

是2个实例还是实际1个实例。

How do i modify my code so it only run one instance at a time

这是我的cron运行文件

<?php
while(1<2)
{
//run every 2 minutes

shell_exec("/usr/bin/php /srv/www/videofix.d.com/public_html/v/complete.php");

sleep(120);
}
?>

在无限循环中运行,但没有sh -c,所以只有1 / usr / bin

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您可以通过将shell_exec行更改为:

来删除额外的进程
shell_exec("exec /usr/bin/php /srv/www/videofix.d.com/public_html/v/complete.php");

这使得执行的shell用命令替换自己,而不是为它分配新的进程。 (这个技巧在Linux下适用于我,在OSX和FreeBSD下没有额外的shell徘徊。)