代码之家  ›  专栏  ›  技术社区  ›  Eric Palakovich Carr

在2.4中杀死Windows异步Popen进程

  •  0
  • Eric Palakovich Carr  · 技术社区  · 16 年前

    在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()
    

    2 回复  |  直到 16 年前
        1
  •  1
  •   BrainCore    16 年前
    1. 考虑将子进程.pY复制到PythON2.4 DIST包目录中。它应该只是一个围绕旧popen库的简单包装器。

    2. Popen对象终止函数只执行以下操作:

      导入操作系统、信号

      os.kill(pid,signal.SIGKILL)

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

        2
  •  0
  •   MartinD    12 年前

    @BrainCore:请注意,python24中的os.kill在windows上不可用,请查看文档。

    我在使用python24时在windows上杀死subprocess.Popen对象的解决方案如下:

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