【问题标题】:Process, memory and network resource tracer进程、内存和网络资源跟踪器
【发布时间】:2020-05-26 08:24:01
【问题描述】:

我想尝试制作一个类似于任何操作系统的 ubuntu 中默认提供的进程、内存和网络资源跟踪器。但是作为python中的新手,我不知道如何显示这些值(原则上通过控制台,然后我将它们作为图形来显示)。使用哪个库更容易?

【问题讨论】:

  • 您是在询问用于获取进程、网络、cpu 数据的正确库 - 还是有关允许您在控制台中呈现数据的库?
  • 我要求两者,首先让库获取数据,然后让库生成图形,使其与 linux 中的相同
  • 您可以使用psutil 模块获得一些您想要的功能。要创建 GUI,我强烈推荐 PyQt5。 PySide2 现在也一样好。 wxPython 也可以完成这项工作。

标签: python networking memory cpu-usage


【解决方案1】:

在 linux 上,您可以利用 /proc 文件系统来读取此类任务所需的信息。

/proc 文件系统是一个进入内核的窗口,每个运行的进程都有大量数据。它显示为一个虚拟文件系统,这意味着您可以通过读取和解析文件来访问所有这些信息。

例如,

from pathlib import Path

proc = Path('/proc')

for proc in proc.iterdir():
    if not proc.name.isnumeric():
        continue # ignore directories that aren't processes

    pid = proc.name    
    cmdline = (proc / 'cmdline').read_text()
    print(f'PROCESS : {pid} : {cmdline}')

这将列出所有正在运行的进程及其命令行。

你可以在那里收集很多信息。

更多信息 /proc here

【讨论】:

  • 我的目标是获取内存/网络和活动进程的百分比,而不是名称。无论如何,感谢您向我展示 linux 中的 proc。只是出于好奇,Windows不会有类似的东西吗?
  • proc 不仅仅是名称,这只是一个例子。您可以列出打开的端口,查看有关进程的统计信息等。Windows 上没有等价物,不是本机的。
猜你喜欢
  • 1970-01-01
  • 2021-10-08
  • 1970-01-01
  • 1970-01-01
  • 2011-09-18
  • 1970-01-01
  • 1970-01-01
  • 2010-09-06
  • 1970-01-01
相关资源
最近更新 更多