Linux进程管理的Python库

14 投票
8 回答
11799 浏览
提问于 2025-04-15 15:50

我想通过我的网页界面来启动或停止一些进程,并且想知道一个已经启动的进程是否还在运行。

我现在的网站是用Python写的,运行在Linux服务器上,你知道有没有合适的库可以实现这个功能吗?

谢谢!

8 个回答

3

因为你提到这是一个Linux服务器,所以直接从/proc获取信息通常比调用外部的ps程序要快,使用的资源也少,而且出错的可能性更小。

由于其他人没有提到,这里有一个简单的方法:

glob.glob('/proc/[0-9]*/')

祝你好运。

6

查看正在运行的程序列表,可以通过访问/proc目录的内容来实现,这个方法连一些基本工具,比如“ps”,也会用到。

所以,如果你想查询正在运行的程序,可以使用和处理其他文件和文件夹一样的库(也就是sysos,具体用哪个看你需要什么功能。不过要特别注意os.path,它能满足你大部分的需求)。如果你想结束某个程序或者与它进行其他交互,你需要给它发送信号,这可以通过os.kill来完成。最后,想要启动新程序,可以使用os.popen及相关的函数。

15

要启动或停止 Python 的子进程,你可以使用 subprocess 模块。要检查这些进程是否在运行,你可以使用 psutil

>>> import psutil
>>> pid = 1034  # some pid
>>> psutil.pid_exists(pid)
True
>>>

...或者你也可以用这个方法(它还会检查进程 ID 是否被重用):

>>> p = psutil.Process(pid)
>>> p.is_running()
True
>>>

撰写回答