PHP等待后台进程执行


PHP waiting till background process execution

我正在从PHP调用Python脚本作为后台进程,但是PHP正在等待脚本执行结束。

这是我所做的:

<?php
$script = "backproc.py";
$python ="C:'Python27'python.exe";
$command = "$python $scriptname $para1 $para2";
shell_exec($command . '2>&1 >out.log &');
?>  

为什么等待后台进程完成?

必须重定向输出

如果一个程序是用这个函数启动的,为了使它在后台继续运行,程序的输出必须重定向到一个文件或另一个输出流。如果不这样做,将导致PHP挂起,直到程序执行结束。

见http://php.net/manual/en/function.exec.php

在UNIX上是eg

shell_exec($command . ' 2>&1 > out.log');