php中的后台exec()函数
我编写这个脚本是为了测试PHP作为后台进程的执行情况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(
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&
类似于我几天前回答的一个问题: