php中的后台exec()函数

php中的后台exec()函数,php,process,exec,Php,Process,Exec,我编写这个脚本是为了测试PHP作为后台进程的执行情况 foreach($tests as $test) { exec("php test.php ".$test["id"]); } 如中所述 及 但是,如果不添加test.php,脚本的运行速度不会比在一个脚本中运行快 我做错了什么 提前谢谢 exec()将一直阻塞,直到您正在执行的进程完成-换句话说,您基本上是在将“test.php”作为子例程运行。您至少需要在命令行参数中添加一个&,这将把exec()d进程置于后台: exec(

我编写这个脚本是为了测试PHP作为后台进程的执行情况

foreach($tests as $test) { 
   exec("php test.php ".$test["id"]); 
} 
如中所述 及

但是,如果不添加test.php,脚本的运行速度不会比在一个脚本中运行快

我做错了什么

提前谢谢

exec()
将一直阻塞,直到您正在执行的进程完成-换句话说,您基本上是在将“test.php”作为子例程运行。您至少需要在命令行参数中添加一个
&
,这将把exec()d进程置于后台:

exec("php test.php {$test['id']} &");

不起作用$test['id']的内容只是一个数字。因此该命令看起来像exec('php test.php&150');是正确的吗?对不起,Woops应该是
php test.php 150&
。符号必须是最后一个字符。我会修正答案。根据,它还需要输出重定向才能在后台运行
php test.php 150>/dev/null&
类似于我几天前回答的一个问题: