在Linux下,Python提供了多种库来管理进程
os:os库提供了一些基本的操作系统功能,可以用来创建和管理进程。例如,可以使用os.system()
函数执行外部命令,或者使用os.spawn*()
函数在新进程中运行Python脚本。但是,这些方法相对较低级,可能无法满足更复杂的需求。
subprocess:subprocess库是Python中用于创建和管理子进程的主要工具。它提供了更强大和灵活的功能,可以用来启动外部命令、运行Python脚本、连接到子进程的输入/输出/错误管道等。以下是一些常用的subprocess函数:
subprocess.run()
: 运行一个子进程,并等待它完成。返回一个subprocess.CompletedProcess实例,包含了子进程的返回码、输出、错误输出等信息。subprocess.Popen()
: 创建一个子进程,并返回一个Popen实例。可以用来控制子进程的输入/输出/错误管道,以及等待子进程完成等。subprocess.PIPE
: 用于连接子进程的输入/输出/错误管道。示例:使用subprocess库运行一个外部命令并获取输出
import subprocess
# 运行外部命令并获取输出
result = subprocess.run(['ls', '-l'], capture_output=True, text=True)
# 打印输出
print(result.stdout)
psutil:psutil库是一个跨平台的库,用于获取系统信息和进程信息。它提供了许多有用的功能,如获取进程列表、进程CPU和内存使用情况、进程启动时间等。以下是一些常用的psutil函数:
psutil.process_iter()
: 遍历系统中的所有进程,返回一个进程迭代器。psutil.Process()
: 表示一个进程,提供了许多属性和方法,如进程ID、名称、CPU使用情况、内存使用情况等。psutil.cpu_percent()
: 获取系统CPU使用率。psutil.memory_info()
: 获取系统内存使用情况。示例:使用psutil库获取系统中所有进程的CPU使用情况
import psutil
# 获取系统中所有进程的CPU使用情况
for process in psutil.process_iter(['pid', 'name', 'cpu_percent']):
print(f'PID: {process.info["pid"]}, Name: {process.info["name"]}, CPU Usage: {process.info["cpu_percent"]}%')
这些库可以帮助你在Linux下使用Python管理进程。你可以根据自己的需求选择合适的库和函数。