我正在从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');