如何在Linux上检查Python中的进程是否存在?

时间:2009-07-11 18:11:19

标签: python process

我在Python中有一个进程ID。我知道我可以用os.kill()杀死它,但是如何检查它是否还活着?有内置功能还是我必须去shell?

3 个答案:

答案 0 :(得分:17)

使用subprocess模块生成进程。 有 proc.poll()函数 - 如果进程仍处于活动状态,则返回None,否则返回进程返回码。

<强> http://docs.python.org/library/subprocess.html

答案 1 :(得分:14)

os.kill不会杀死进程,它会向它们发送信号(命名不佳)。

如果您发送信号0,您可以确定是否允许您发送其他信号。错误代码将指示它是权限问题还是缺少进程。

有关详细信息,请参阅man 2 kill

此外,如果该过程是您的孩子,您可以在死亡时获得SIGCHLD,并且您可以使用其中一个wait来处理它。

答案 2 :(得分:0)

使用psutil,您可以检查进程ID是否存在:

import psutil
print(psutil.pid_exists(1234))