在2.4中终止Windows异步Popen进程

2024-05-06 17:31:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个测试脚本,需要打开一个进程(一个Pyro服务器),做一些事情来调用打开的进程来获取信息,当所有这些都完成后,需要关闭进程。这都是登台服务器上自动测试的一部分。在

在python 2.6中,可以执行以下操作:

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

唉,我在这里工作时被锁定在Python2.4中,所以无法访问该函数。如果我让脚本结束,服务器当然会继续运行。在脚本退出之前,我应该做些什么来关闭/终止该进程?在


Tags: py服务器脚本serverremote进程事情do
2条回答
  1. 考虑复制子流程.py到python2.4 dist packages目录。它应该只是一个简单的包装,围绕着旧的波本图书馆。

  2. Popen object terminate函数只执行以下操作:

    导入操作系统,信号

    在os.杀死(pid,SIGKILL信号)

pid是子进程的进程id。SIGKILL信号是数字9,是一个标准的unix终止信号。您可以看到如何在python2.4中使用popen模块here生成子进程并获取其pid:

@BrainCore:注意os.杀死在python24的windows上不可用,请检查文档。在

我的解决方案子流程.Popenwindows上使用python24时的对象是:

import os, subprocess
p = subprocess.Popen(...)
res = os.system('taskkill /PID %d /F' % p.pid)

相关问题 更多 >