Python 语言 系统进程监控 psutil 模块 实战

Python阿木 发布于 6 天前 7 次阅读


Python 系统进程监控实战:psutil 模块深度解析

在系统管理和运维过程中,进程监控是一个至关重要的环节。它可以帮助我们了解系统资源的使用情况,及时发现并解决性能瓶颈,确保系统的稳定运行。Python 作为一种功能强大的编程语言,拥有丰富的库来帮助我们实现这一目标。其中,psutil(process and system utilities)模块是一个跨平台、功能强大的库,可以用来监控进程、系统资源等。本文将围绕 Python 语言和 psutil 模块,展开系统进程监控的实战解析。

psutil 模块简介

psutil 是一个跨平台、功能强大的库,可以用来获取系统(CPU、内存、磁盘、网络等)和进程(创建、监控、管理等)的信息。它支持 Linux、Windows、OS X、FreeBSD、OpenBSD 和 Sun Solaris 等操作系统。psutil 的主要特点如下:

- 跨平台:支持多种操作系统。
- 功能丰富:提供进程、系统资源、网络等方面的监控功能。
- 简单易用:提供丰富的 API,方便开发者使用。
- 高效:采用 C 语言编写,性能优越。

系统进程监控实战

1. 进程信息获取

我们需要获取进程的基本信息,如进程 ID、名称、状态、内存使用情况等。以下是一个获取当前进程信息的示例代码:

python
import psutil

获取当前进程信息
current_process = psutil.Process()

获取进程 ID
pid = current_process.pid

获取进程名称
name = current_process.name()

获取进程状态
status = current_process.status()

获取进程内存使用情况
memory_info = current_process.memory_info()

print(f"PID: {pid}")
print(f"Name: {name}")
print(f"Status: {status}")
print(f"Memory: {memory_info}")

2. 进程列表获取

在实际应用中,我们可能需要获取系统中的所有进程信息。以下是一个获取进程列表的示例代码:

python
获取所有进程信息
processes = psutil.process_iter(['pid', 'name', 'status'])

遍历进程列表
for process in processes:
print(f"PID: {process.info['pid']}, Name: {process.info['name']}, Status: {process.info['status']}")

3. 进程资源监控

psutil 提供了丰富的 API 来监控进程的资源使用情况,如 CPU、内存、磁盘、网络等。以下是一个监控进程 CPU 使用率的示例代码:

python
import time

获取当前进程信息
current_process = psutil.Process()

获取进程 CPU 使用率
cpu_usage = current_process.cpu_percent(interval=1)

print(f"CPU Usage: {cpu_usage}%")

4. 进程创建与终止

在实际应用中,我们可能需要创建新的进程或终止现有进程。以下是一个创建新进程并终止它的示例代码:

python
创建新进程
new_process = psutil.Popen(['python', '-c', 'print("Hello, world!")'])

等待进程结束
new_process.wait()

终止进程
psutil.Process(new_process.pid).terminate()

5. 系统资源监控

除了进程监控,psutil 还可以用来监控系统资源,如 CPU、内存、磁盘、网络等。以下是一个监控系统 CPU 使用率的示例代码:

python
import time

获取系统 CPU 使用率
cpu_usage = psutil.cpu_percent(interval=1)

print(f"System CPU Usage: {cpu_usage}%")

总结

本文通过 psutil 模块,展示了 Python 语言在系统进程监控方面的实战应用。psutil 模块功能强大、易于使用,可以帮助开发者轻松实现进程和系统资源的监控。在实际应用中,我们可以根据需求,灵活运用 psutil 提供的 API,实现各种监控功能。

扩展阅读

- psutil 官方文档:https://psutil.readthedocs.io/en/latest/
- Python 进程管理:https://docs.python.org/3/library/subprocess.html
- Python 系统资源监控:https://docs.python.org/3/library/resource.html

通过学习本文,相信你已经对 Python 系统进程监控有了更深入的了解。希望你在实际应用中能够灵活运用所学知识,为系统管理和运维工作提供有力支持。