Regex PHP运行多实例问题
我尝试使用ps ax,看到我的cron_run.php 哪个执行complete.php 但似乎有两个实例正在运行Regex PHP运行多实例问题,regex,linux,bash,sed,Regex,Linux,Bash,Sed,我尝试使用ps ax,看到我的cron_run.php 哪个执行complete.php 但似乎有两个实例正在运行 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/vi
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
它是两个实例还是实际上是一个实例
1 is with sh -c
1 is without
这是我的cron运行文件
How do i modify my code so it only run one instance at a time
在无止境的循环中运行,但是没有sh-c,因此只有1/usr/bin
感谢您的帮助您可以通过将shell\u exec行更改为:
<?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);
}
?>
这使得已执行的shell用命令替换自身,而不是为其派生新的进程。(这个技巧在Linux、OSX和FreeBSD下对我有效。)因为
sh
调用/usr/bin/php
你会看到两个。如果运行psaxf
,您可以更好地看到正在发生的事情:因此没有真正的问题:有1个complete.php作业正在运行。为什么要调用shell\u exec
而不是include
ing它?sh-c php
不是php本身。它是由您的代码> Shell执行()/代码>调用创建的(SH)。另外,我将考虑查看<代码>完成。PHP<代码>,如果它可以移植到shell脚本中。如果您可以调整使用CROTAB而不是PHP,请做。
shell_exec("exec /usr/bin/php /srv/www/videofix.d.com/public_html/v/complete.php");