Linux进程管理的Python库
我想通过我的网页界面来启动或停止一些进程,并且想知道一个已经启动的进程是否还在运行。
我现在的网站是用Python写的,运行在Linux服务器上,你知道有没有合适的库可以实现这个功能吗?
谢谢!
8 个回答
3
因为你提到这是一个Linux服务器,所以直接从/proc获取信息通常比调用外部的ps程序要快,使用的资源也少,而且出错的可能性更小。
由于其他人没有提到,这里有一个简单的方法:
glob.glob('/proc/[0-9]*/')
祝你好运。
6
查看正在运行的程序列表,可以通过访问/proc目录的内容来实现,这个方法连一些基本工具,比如“ps”,也会用到。
所以,如果你想查询正在运行的程序,可以使用和处理其他文件和文件夹一样的库(也就是sys
或os
,具体用哪个看你需要什么功能。不过要特别注意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
>>>