2015-07-20 147 views
0

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

这就是我所做的:

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

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

回答

1

如果程序开始使用此功能,您必须将输出重定向

,以便它继续在后台运行,该程序的输出必须重定向到文件或其他输出流。否则会导致PHP挂起,直到程序执行结束。

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

所以在UNIX上它会如

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

Python脚本不返回任何东西父进程。所以我只是想调用它,并没有输出需要从脚本,然后为什么它在等待。即使我重定向输出到一些文件执行挂起,直到执行程序结束 – Rajendra

+0

看看php.net **未这样做会导致PHP挂起,直到程序执行结束。** – donald123

+0

输出重定向到另一个文件,但仍然是相同的问题 – Rajendra