我有一个测试脚本需要打开一个进程(a火服务器),做一些东西,将调用开放过程的信息,而当这一切都将需要关闭进程回到下来。这是所有部分的一个自动化测试的一个暂存服务器。

在python2.6你可以这样做:

pyro_server = subprocess.Popen(['python', 'pyro_server.py'])
# Do stuff, making remote calls to the Pyro server on occasion
pyro_server.terminate()

唉,我被锁到蟒蛇2.4在这里工作所以我没有访问这一职能。如果我只是让脚底当然的服务器的生活。我应该怎么做到的关闭/杀了这一进程之前,脚本退出?

有帮助吗?

解决方案

  1. 考虑复制subprocess.py 你python2.4区包录。它应该只是工作,因为它是一个简单的包装的老popen图书馆。

  2. 该Popen目终止的功能并没有什么比如下:

    导入操作系统、信号

    操作系统。杀(pid,信号。SIGKILL)

pid是儿童过程中的进程id。信号。SIGKILL是9号,而是一个标准的unix杀了信号。你可以看到如何产卵子流程和获得其pid python2.4与popen模块 在这里,:

其他提示

@BrainCore:需要注意的是os.kill不适用于在python24窗口,检查文档

我的用于杀死Windows上的subprocess.Popen对象使用python24时是这样的解决方案:

import os, subprocess
p = subprocess.Popen(...)
res = os.system('taskkill /PID %d /F' % p.pid)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top