在Python中,不使用/ proc文件系统,如何判断给定的PID是否正在运行?

前端之家收集整理的这篇文章主要介绍了在Python中,不使用/ proc文件系统,如何判断给定的PID是否正在运行?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

假设我有一个PID,比如555.我想看看那个pid是否正在运行或已经完成.我可以检查/ proc /但我在生产环境中无法访问它.什么是最好的方法来做到这一点,缺少像打开管道到“ps”的东西?

最佳答案
使用信号编号为0的os.kill()函数.如果进程pid存在,则调用将成功,否则将引发OSError异常:

try:
    os.kill(pid,0)
    print("process exists")
except OSError:
    print("process does not exist")

我系统上kill(2)的文档说:

The kill() function sends the signal given by sig to pid,a process or a group of processes. Sig may be one of the signals specified in sigaction(2) or it may be 0,in which case error checking is performed but no signal is actually sent. This can be used to check the validity of pid.

猜你在找的Python相关文章