python - 用Python查看所有系统进程

标签 python process watch

我正在尝试使用 Python 收集有关我的操作系统 (Ubuntu) 中进程的一些统计信息(生命周期、开始时间/完成时间等),

任务之一:我编写了一个函数,它获取系统中进程的名称和 ID,但它很丑陋。

def get_processes():
    p = subprocess.Popen(['ps', '-e'], stdout=subprocess.PIPE)
    raw_string, e = p.communicate()
    strings_arr = raw_string.split('\n')
    strings_arr = strings_arr[1:]
    processes_dict = {}
    # Example of ps -e ansewer:  7 ?        00:00:00 watchdog/0
    for string in strings_arr:
        splted = string.split()
        key, value = None, None
        if len(splted) == 0: continue
        for item in splted:#looking for process id
            if item.isdigit():
                key = int(item)
                break
        value = splted[-1] # looking for process name
        processes_dict[key] = value
    return processes_dict

有人可以让它变得漂亮或提出更好的解决方案吗? PS 抱歉我的写作错误。英语不是我的母语。

最佳答案

获取psutil 。像这样的东西会给你类似的结果,

{process.pid: process.exe for process in psutil.process_iter() if process.pid}

关于python - 用Python查看所有系统进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17060074/

相关文章:

python - django-mailer 尝试发送邮件时出错

java - 在 Java 中重定向标准输入和标准输出

c# - 使用来自 Unity C# 的参数运行 .exe 文件

javascript - 在 ng-grid 中,gridOptions.$gridScope.columns 在隐藏/显示列上更改了两次

reactjs - 如何在没有 Webpack 的情况下使用 Babel

python - Keras 中的 RMSE/RMSLE 损失函数

python - 使用 Signals 在 django 中注册用户后如何创建用户配置文件?

python - Web2py:自定义表单的自定义 CSS 类

linux - 如何在我的虚拟环境中启用多核?

performance - 与Compass和Watch一起 Grunt 咕slow的编译速度很慢