如何在Linux的Python中检查进程是否存活?
我在Python中有一个进程ID。我知道可以用os.kill()来结束它,但我怎么检查这个进程是否还在运行呢?有没有内置的函数可以用,还是说我得去命令行里查?
3 个回答
0
使用psutil这个库,你可以检查一个进程的ID是否存在:
import psutil
print(psutil.pid_exists(1234))
14
os.kill
这个函数其实并不是直接杀掉进程,而是给它们发送信号(这个名字起得不太好)。
如果你发送信号0,你可以检查一下自己是否有权限发送其他信号。如果有错误代码返回,那就说明可能是权限问题或者进程不存在。
想了解更多信息,可以查看 man 2 kill
。
另外,如果这个进程是你的子进程,当它结束时,你会收到一个 SIGCHLD
信号,你可以用 wait
相关的函数来处理这个情况。
17
使用 subprocess
模块可以创建新的进程。这里有一个 proc.poll() 函数 - 如果进程还在运行,它会返回 None
,如果进程已经结束,它会返回进程的返回码。