【发布时间】:2020-03-20 23:12:10
【问题描述】:
使用子进程库我确实产生了新进程。
import subprocess
pid = subprocess.Popen(["sleep", "1"]).pid
is_process_running(pid)
这样做的重点是在异步等待中调用脚本并继续程序的工作。 我不想使用调用的相同脚本生成多个子进程,这就是为什么我试图检测具有给定 PID 号的进程是否仍然存在于系统中。
我使用的函数如下所示:
import os
def is_process_running(process_id):
try:
os.kill(process_id, 0)
return True
except OSError:
return False
不幸的是,使用子进程库创建的进程可以永远访问。它们的状态是:已失效。因此,我上面写的函数总是返回 True。有什么方法可以检测进程是否被标记为defunct?
【问题讨论】:
标签: python subprocess