pet*_*EEy 1 python linux subprocess
如何获取我没有为其创建对象的子进程的pid?即
myProc = Popen(["sleep","30"])
Run Code Online (Sandbox Code Playgroud)
VS
Popen(["sleep","30"])
Run Code Online (Sandbox Code Playgroud)
我注意到,如果我在发送终止信号后没有轮询()或等待(),它们就变成了僵尸进程.在我的脚本中的某个点上,我想找到我的脚本是其父项的所有子进程,并向它们发送信号或轮询它们.这在python中可能吗?有可能吗?
您可以psutil用来查找父Python进程的子进程.例如:
import psutil
import os
import subprocess
subprocess.Popen(['sleep', '30'])
parent_pid = os.getpid()
parent = psutil.Process(parent_pid)
for child in parent.children():
print(child) # do something here
Run Code Online (Sandbox Code Playgroud)
打印:
psutil.Process(pid=16822, name='sleep')
Run Code Online (Sandbox Code Playgroud)
从那里你可以轮询他们,杀死他们等.