Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex PHP运行多实例问题_Regex_Linux_Bash_Sed - Fatal编程技术网

Regex 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

我尝试使用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/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");