我正在从命令行运行一个(分离的)PHP脚本,该命令行本身使用shell_exec()
启动其他PHP脚本。我曾预计这些脚本几乎都会立即启动,但是相反,它似乎正在等待一个脚本完成,然后代码才能继续执行下一个脚本。
这实际上是我正在运行的。如何允许我的脚本继续通过foreach循环而不等待每个shell_exec()
终止?
foreach ($rows as $row) {
$output = shell_exec("php path/to/file.php $estab_code") ;
}
真的,我的预期结果是,每个shell_exec()
应该触发一次新的一次性Heroku测功机,并且所有这些同时运行。但是,这似乎没有发生:执行的脚本似乎是从原始dyno运行的。
有什么想法吗?
答案 0 :(得分:1)
shell_exec等待命令返回某些内容。为了使某些事情立即发生并且为空,您可以在每个命令上添加以下内容:
> /dev/null 2>/dev/null &
类似这样的东西:
foreach ($rows as $row) {
$output = shell_exec("php path/to/file.php $estab_code > /dev/null 2>/dev/null &");
}