首页 > 解决方案 > 在 Linux 上获取服务及其状态的 Python 代码

问题描述

我正在尝试编写一个 python 程序,它可以在机器(linux 或 windows)上获取服务字典。

字典上的任何条目都是由 {Service : Status} 对组成的。

该程序将从用户每隔给定的秒数运行一次。

我知道模块 psutils 提供了正确的工具,因为它简单且具有跨平台能力。

因此我在下面写了这段代码。此代码正在从系统中获取信息。

def getServiceDict():
    dict = {}
    if os.name == "nt":
        for service in psutil.win_service_iter():
            dict[service.name()] = service.status()
    elif os.name == "posix":
        for pid in psutil.pids():
            name = psutil.Process(pid).name()
            status = psutil.Process(pid).status()
            dict[name] = status

    return list

如您所见,Windows 中的服务列表非常简单,但在 linux 上,我发现只有一种列出进程而不是服务的方法。

如何区分 linux 中的进程和服务

是否有我可以通过 psutils 访问的属性?也许是一个不同的模块?

标签: pythonlinuxservice

解决方案


推荐阅读