2011-03-11 85 views
1

我需要在PHP文件中调用后台运行Python脚本。 PHP文件应该继续独立于Python脚本运行(即不应该等待Python脚本完成处理,而应该继续进行处理)。从PHP文件在后台运行Python脚本

Python脚本接受一个参数并且不产生输出(它仅处理背景中的一些数据),然后退出。我正在运行Python 2.6,PHP 5.2.6和Ubuntu 9.04。

回答

2

您可以使用exec()来启动Python interperator,并通过重定向将其输出发送到文件或/ dev/null。在exec调用中使用&运算符将导致该命令启动并且PHP不会等待结果。

http://www.developertutorials.com/tutorials/php/running-background-processes-in-php-349/更详细。

+0

这似乎是我一直在寻找的答案。非常感谢! (在时间限制结束时将接受答案) – johneth 2011-03-11 13:06:17

+1

正如我在其他答案中提到使用&符号('&'),请注意,这可能会创建僵尸进程。正如我所建议的那样,让Python脚本守护进程会更安全。 – Felix 2011-03-11 13:14:34

0

我猜PHP文件是通过Apache调用的,在这种情况下你将无法使用fork()。你应该让你的Python脚本守护进程。退房python-daemon

0

你可以使用:

<?php 
shell_exec('./test.sh &'); 
?> 

其中./test.sh应执行行脚本

+1

请注意,这可以创建僵尸进程。 – Felix 2011-03-11 13:05:41