假设我有一个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.