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的并发处理:(一)并行运行多个互不相干的子进程

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

zz: Python subprocess创建子进程(Windows下打开新的CMD窗口)

zz from: http://www.cnblogs.com/oubo/archive/2011/10/10/2394593.html Python subprocess 创建子进...

python安全管理子进程-subprocess

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

python安全管理子进程-subprocess

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

python通过PIPE通讯控制子进程输入命令执行

看本章之前优先查看 http://blog.csdn.net/ab7936573/article/details/66184086 直接上python代码: #coding:utf-8 impo...

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

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

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

原文出处:http://python.jobbole.com/81517/ 最近,我们老大要我写一个守护者程序,对服务器进程进行守护。如果服务器不幸挂掉了,守护者能即时的重启应用程序。上网Goo...

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

二、应用实例解析 2.1 subprocess模块的使用 1. subprocess.call >>> subprocess.call(["ls", "-l"])   0   >>>...

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

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

Python:从subprocess运行的子进程中实时获取输出

有些时候,我们需要将某些程序放到子进程中去运行,以达到整合系统的目的。在Python中,一个非常好的选择就是使用subprocess模块,本模块为开辟子进程去执行子程序提供了统一的接口,更加便于学习和...
  • cnweike
  • cnweike
  • 2017年06月23日 12:25
  • 3562
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python调用子进程实例,来自cherrypy-cgiserver
举报原因:
原因补充:

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