PHP调用服务器脚本 - 通话后不会继续

时间:2012-02-17 10:36:48

标签: php python system exec nohup

是的,我在PHP脚本中调用Python脚本。调用Python脚本后,此PHP脚本需要继续。

我已经尝试了以下所有方法,但PHP坚持要等到脚本响应。

所有尝试过: -

system('nohup python /home/process/script.py -i '.escapeshellarg($location).' &');
system('nohup python /home/process/script.py -i '.escapeshellarg($location).' 2>&1 &');
system('nohup python /home/process/script.py -i '.escapeshellarg($location).' < /dev/null 2>&1 &');
exec('nohup python /home/process/script.py -i '.escapeshellarg($location).' &');
exec('nohup python /home/process/script.py -i '.escapeshellarg($location).' 2>&1 &');
exec('nohup python /home/process/script.py -i '.escapeshellarg($location).' < /dev/null 2>&1 &');

也尝试过passthru而没有nohup。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

引用exec doc

  

如果使用此功能启动程序,为了使其在后台继续运行,必须将程序的输出重定向到文件或其他输出流。如果不这样做将导致PHP挂起,直到程序执行结束。

你应该试试这个:

exec('nohup python /home/process/script.py -i '.escapeshellarg($location).' &>/dev/null &');