我想在 Linux 中使用 python 获得所有守护进程/服务的列表。 我可以使用
获取信息service --status-all
但是我不想通过 Python 执行终端命令。是否有任何 API 可用于执行此操作?
我的项目包含很多东西,所以我需要注意内存和 CPU 使用情况,而且我可能需要每 10 秒或 60 秒运行一次命令,具体取决于配置。 所以我不想创建太多进程。
之前我使用过subprocess.check_output(command)
但我的经理告诉我避免使用命令并尝试使用任何可用的包,我尝试搜索一些但发现只能监控服务而无法列出的包。
最后,我的目标是尽量减少系统负载。 有什么建议 ?
其他详细信息-
Python 3.7.2
Ubuntu 16
最佳答案
使用 psutil(sudo pip3 install psutil)
#!/usr/bin/env python
import psutil
def show_services():
return [(
psutil.Process(p).name(),
psutil.Process(p).status(),
) for p in psutil.pids()]
def main():
for service in show_services():
if service[1] == 'running':
print(service[0])
if __name__ == '__main__':
main()
show_services 返回元组列表(名称、状态)
关于python - 使用 Python 列出 linux 中的所有守护进程/服务名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54568953/