检查进程是否在Linux上使用Python运行[重复]

这个问题在这里已经有答案了
如何检查Python中是否存在具有给定pid的进程?

(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)

如果进程存在,则应该成功(并且什么也不做),或者如果进程不存在,则抛出异常(您可以捕获)

发表评论