在Linux 中判断一个PID 对应的进程是否存在,可以通过如下进行判断

#! /usr/bin/env python

import os

def check_pid(pid):
    try:
        os.kill(pid,0)
    except OSError:
        return False
    else:
        return True

if __name__ == "__main__":
    print check_pid(22467)


如果PID在系统中存在,将返回True , 否则返回False。


为什么向对应的pid 进程发生 0 信号(其实没有这个信号的 。kill -l 可以确认没有这个编号的信号) 能够判断 Pid 对应的进程是否存在呢 ?


在linux 系统中, man 手册帮助了我们。


man 2  kill  截获如下一部分

wKiom1begB_BImeqAAOxBX-OzVY972.png


linux 系统帮助中给了我们很好的解答。呵呵。