我在Python中有一个进程ID。我知道我可以用os.kill()杀死它,但是如何检查它是否还活着?有内置功能还是我必须去shell?
答案 0 :(得分:17)
使用subprocess
模块生成进程。
有 proc.poll()函数 - 如果进程仍处于活动状态,则返回None
,否则返回进程返回码。
答案 1 :(得分:14)
os.kill
不会杀死进程,它会向它们发送信号(命名不佳)。
如果您发送信号0,您可以确定是否允许您发送其他信号。错误代码将指示它是权限问题还是缺少进程。
有关详细信息,请参阅man 2 kill
。
此外,如果该过程是您的孩子,您可以在死亡时获得SIGCHLD
,并且您可以使用其中一个wait
来处理它。
答案 2 :(得分:0)
使用psutil,您可以检查进程ID是否存在:
import psutil
print(psutil.pid_exists(1234))