代码之家  ›  专栏  ›  技术社区  ›  Rowan

如何列出Python中的所有子进程?

  •  14
  • Rowan  · 技术社区  · 15 年前

    我正在使用第三方库来启动各种子流程。当出现异常时,我想杀死所有子进程。如何获取儿童pids列表?

    3 回复  |  直到 7 年前
        1
  •  15
  •   Jason Martens    9 年前

    您不能总是记录创建的所有子流程,因为它们可以反过来创建您不知道的新流程。但是,使用psutil查找它们非常简单:

    import psutil
    
    current_process = psutil.Process()
    children = current_process.children(recursive=True)
    for child in children:
        print('Child pid is {}'.format(child.pid))
    
        2
  •  2
  •   Zac Bowling    15 年前

    当您创建子进程时,记录它们的PID通常比较安全。没有符合POSIX的方式来列出子PID。我知道这可以用ps工具完成。

        3
  •  1
  •   warvariuc    7 年前

    使用psutil,您可以获得所有子进程(甚至递归进程)查看 https://psutil.readthedocs.io/en/latest/#psutil.Process.children