python调用子进程实例,来自cherrypy-cgiserver

原创 2013年12月03日 15:57:01

python调用子进程实例,调用php-cgi.exe,生成网页内容,截取自cherrypy-cgiserver

import subprocess
import tempfile
from cStringIO import StringIO
import threading
PHP_CGI = 'H:/web/php_server_simple/php/php-cgi.exe'
def test2():
    response = tempfile.SpooledTemporaryFile(
            max_size =1024*1024,
            mode = "w+b"
        )
    handler_executable=PHP_CGI
    cmd_args=[handler_executable,"phpinfo.php"]
    dir="H:/web/django-php-master"
    proc = subprocess.Popen(
            cmd_args,
            executable = handler_executable,
            stdin = subprocess.PIPE,
            stdout = response,
            stderr = subprocess.STDOUT,
            cwd = dir
        )
    proc.force_terminated = False
    body_file = StringIO()
    proc.stdin.write(body_file.read())
    def terminate_cgi_process():
            """
            Terminiert nach einem Timeout den CGI-Prozess
            """

            proc.terminate()
            proc.force_terminated = True
    # Timeout-Timer starten, der nach Ablauf den CGI-Prozess terminiert
    timer = threading.Timer(5, terminate_cgi_process)
    timer.start()

    # Los geht's (hier wird gewartet bis das CGI-Programm fertig ist)
    proc.communicate()

    # Timeout-Timer abbrechen, da er hier nicht mehr ben?tigt wird
    timer.cancel()

    # Falls der Timeout-Timer den CGI-Prozess abbrechen musste, wird der
    # GATEWAY_TIMEOUT-Fehler ausgel?st.
    if proc.force_terminated:
        raise cherrypy.HTTPError(httplib.GATEWAY_TIMEOUT)

    # Get header lines
    response.seek(0)
    print response.read()
if __name__=="__main__" :
    test2()


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Python的subprocess子进程和管道进行交互

目的是解决Python和C/C++的互操作性的问题,假如性能瓶颈的地方用C来写,而一些外围工作用Python来完成,岂不是完美的结合。 今天发现了更方便的方式,就是用subprocess模块,创...

Python标准库06 子进程 (subprocess包)

Python标准库06 子进程 (subprocess包)   这里的内容以Linux进程基础和Linux文本流为基础。subprocess包主要功能是执行外部的命令和程序。比如说,我需要使用wg...

Python的并发处理:(一)并行运行多个互不相干的子进程

Python的并发处理:(一)并行运行多个互不相干的子进程 转自:http://1.seanxu.sinaapp.com/?p=127 这是并发处理中最简单的一种情况。应用场景当然也很简单...

Python标准库06 子进程 (subprocess包)

Python标准库06 子进程 (subprocess包) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 谢...

python安全管理子进程-subprocess

经常会用到python去调用外部 工具或者命令去干活 有的时候子进程并不按预期退出 比如,子进程由于某种原因挂在那里, 这时候也许,我们有这样一种需求:需要父进程对子进程有监控动作,...

可靠地终止对 Python 2.5 的子进程

参考地址:http://d2100.com/questions/36182 我有一个脚本,反复运行 Ant 生成文件和擦伤成解析格式的输出。当我创建的子进程,使用 Popen 时,有一个小时...

Python模块学习 ---- subprocess 创建子进程

最近,我们老大要我写一个守护者程序,对服务器进程进行守护。如果服务器不幸挂掉了,守护者能即时的重启应用程序。上网Google了一下,发现Python有很几个模块都可以创建进程。最终我选择使用subpr...

python子进程模块subprocess详解与应用实例 之二

1.2. Popen 对象 Popen类的实例有下列方法: 1. Popen.poll() 检查子进程是否已经结束,设置并返回返回码值。 2. Popen.wait() 等待子进程结束,设置...

(转)Python模块学习 ---- subprocess 创建子进程

文章来源: http://blog.csdn.net/jgood/article/details/4498166   最近,我们老大要我写一个守护者程序,对服务器进程进行守护。如果服务器不幸挂掉...

Python标准库06 子进程 (subprocess包)

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 谢谢Tolbkni Kao帮我纠正错误   这里的内容以Li...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)