一尘不染

获取子进程的pid

django

我正在使用python的多处理模块来生成新进程

如下 :

import multiprocessing
import os
d = multiprocessing.Process(target=os.system,args=('iostat 2 > a.txt',))
d.start()

我想获取iostat命令的pid或使用多处理模块执行的命令

当我执行时:

 d.pid 

它给了我运行此命令的subshel​​l的pid。

任何帮助都是有价值的。

提前致谢


阅读 757

收藏
2020-04-02

共1个答案

一尘不染

你可以使用psutil:

import signal, psutil
def kill_child_processes(parent_pid, sig=signal.SIGTERM):
    try:
      parent = psutil.Process(parent_pid)
    except psutil.NoSuchProcess:
      return
    children = parent.children(recursive=True)
    for process in children:
      process.send_signal(sig)
2020-04-02