返回

揭秘 Linux 进程管理:Python 之道

Linux

在 Linux 上使用 Python 掌控进程

前言

进程管理是 Linux 系统的核心,它决定了系统性能、资源分配和整体稳定性。了解如何使用 Python 获取和处理进程列表对于高效管理 Linux 系统至关重要。本文将深入探讨使用 Python 探索 Linux 进程世界的方方面面,让你对系统运行状况了如指掌。

获取进程列表

获取进程列表的第一步是使用 Python 的 psutil 库,它提供了一个跨平台的接口来监视和控制系统进程。要安装 psutil,请使用以下命令:

pip install psutil

安装完成后,你可以使用 psutil 获取所有正在运行的进程:

import psutil

processes = psutil.process_iter()

for process in processes:
    print(process.name(), process.pid)

筛选进程

获取进程列表后,通常需要进一步筛选,以专注于特定信息。psutil 提供了强大的筛选功能:

  • 按用户名筛选: processes = psutil.process_iter(user="username")
  • 按 CPU 使用率筛选: processes = psutil.process_iter(attrs=["cpu_percent"])
  • 按内存使用量筛选: processes = psutil.process_iter(attrs=["memory_info"])

处理进程

获取经过筛选的进程列表后,你可以对它们执行各种操作:

  • 终止进程: process.kill()
  • 获取进程信息: process.info()(返回字典)
  • 获取进程的线程: process.threads()
  • 获取进程的打开文件: process.open_files()
  • 获取进程的内存使用情况: process.memory_info()

示例代码

让我们看一个完整的示例,展示如何在 Linux 上使用 Python 获取并处理进程列表:

import psutil

# 获取所有进程
processes = psutil.process_iter()

# 筛选出 CPU 使用率超过 50% 的进程
high_cpu_processes = []
for process in processes:
    if process.info["cpu_percent"] > 50:
        high_cpu_processes.append(process)

# 打印进程名称、PID 和 CPU 使用率
for process in high_cpu_processes:
    print(process.name(), process.pid, process.info["cpu_percent"])

# 终止 CPU 使用率最高的进程
if len(high_cpu_processes) > 0:
    high_cpu_processes[0].kill()

结论

掌握使用 Python 处理进程列表是高效管理 Linux 系统的关键技能。通过利用 psutil 库的强大功能,你可以深入了解系统运行状况,优化资源分配并快速解决问题。通过理解本文介绍的技巧,你将成为一名更有能力的系统管理员,能够驾驭 Linux 进程世界的复杂性。

常见问题解答

  1. 如何获取所有正在运行的进程的 PID?
    processes = psutil.pids()

  2. 如何检查进程是否还在运行?
    process.is_running()

  3. 如何获取进程的命令行参数?
    process.cmdline()

  4. 如何设置进程的优先级?
    process.nice(new_priority)

  5. 如何获取进程的子进程?
    process.children()