我知道我们可以使用以下命令运行后台进程:
exec("doTask.php $arg1 $arg2 $arg3 >/dev/null 2>&1 &");
(取自:异步运行 PHP 任务)
但是我有一个脚本,它取决于第一次执行的状态。例子:
mongoexport ... | awk ... > my.csv && zip myzip my.csv
CSV 文件必须存在才能压缩。
更新:文件名和一些查询条件是用户提交的值。
所以我有类似的东西:
exec("mongoexport ... | awk ... > my.csv && zip myzip my.csv > /dev/null 2>&1 &);
但这不起作用。PHP 挂在那里等待脚本完成运行。
我试过了
exec("mongoexport ... | awk ... > my.csv &);
这样可行。
那么&&
它不在后台运行的原因是什么?
如何使示例在后台运行?