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
感谢您的帮助
最佳答案
您可以通过将shell_exec行更改为以下内容来删除多余的过程:
shell_exec("exec /usr/bin/php /srv/www/videofix.d.com/public_html/v/complete.php");
这使执行的外壳程序用命令替换自身,而不是为其添加新进程。 (此技巧对我在Linux,OSX和FreeBSD下都有效,没有多余的Shell困扰。)