我需要在从PHP文件调用后在后台运行Python脚本。 PHP文件应该继续独立于Python脚本运行(即它不应该等待Python脚本完成处理,而应该继续自己进行处理)。
Python脚本接受一个参数并且不产生输出(它只是在后台处理一些数据),然后退出。我正在运行Python 2.6,PHP 5.2.6和Ubuntu 9.04。
答案 0 :(得分:2)
您可以使用exec()启动Python interperator,并将其输出发送到文件或重定向到/ dev / null。使用& exec调用中的运算符将导致命令启动并继续PHP而不等待结果。
http://www.developertutorials.com/tutorials/php/running-background-processes-in-php-349/详细介绍。
答案 1 :(得分:1)
PHP Process Control可用于此目的。 proc_open
命令可用于启动进程。您可以稍后检查它,读取它的输出等。
查看手册条目:http://www.php.net/manual/en/function.proc-open.php并在Google上搜索PHP过程控制
答案 2 :(得分:0)
我猜测是通过Apache调用PHP文件,在这种情况下你将无法fork()
。您应该使您的Python脚本守护进程。查看python-daemon。
答案 3 :(得分:0)
您可以使用:
<?php
shell_exec('./test.sh &');
?>
其中./test.sh
应该是脚本的执行行