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

Uri*_*Uri 3 python process

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

Mik*_*nov 17

使用subprocess模块生成进程.有proc.poll()函数 - None如果进程仍然存在则返回,否则返回进程返回码.

http://docs.python.org/library/subprocess.html


Dus*_*tin 14

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

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

有关详情man 2 kill,请参阅.

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

  • 它的命名并不好.它被命名为反映Unix命令kill也发送信号,因此是发送kill信号的概括. (2认同)