这个问题在这里已经有答案了:
如何检查Python中是否存在具有给定pid的进程?
(14个答案)
(14个答案)
七年前关闭的
我正在尝试根据进程id查找进程是否正在运行。根据论坛上的一篇帖子,代码如下所示。我不能考虑进程名称,因为有不止一个进程以相同的名称运行。
def findProcess(进程ID):
ps=subprocess.Popen(“ps-ef | grep”+processId,shell=True,stdout=subprocess.PIPE)
输出=ps.stdout.read()
ps.stdout.close()
等等
返回输出
def isProcessRunning(进程ID):
输出=findProcess(进程ID)
如果重新搜索(processId,output)为无:
返回真值
其他:
返回错误
输出:
11117231723110:00.00 ttys000 0:00.00/bin/sh-c ps-ef | grep 71676
1111 72314 723120 0:00.00 ttys000 0:00.00 grep 71676
它总是返回true,因为它可以在输出字符串中找到进程id
有什么建议吗?谢谢你的帮助
尝试:
os.kill(pid,0)
如果进程存在,则应该成功(并且什么也不做),或者如果进程不存在,则抛出异常(您可以捕获)