在Linux下,Python提供了多種庫來管理進程
os:os庫提供了一些基本的操作系統功能,可以用來創建和管理進程。例如,可以使用os.system()函數執行外部命令,或者使用os.spawn*()函數在新進程中運行Python腳本。但是,這些方法相對較低級,可能無法滿足更復雜的需求。
subprocess:subprocess庫是Python中用于創建和管理子進程的主要工具。它提供了更強大和靈活的功能,可以用來啟動外部命令、運行Python腳本、連接到子進程的輸入/輸出/錯誤管道等。以下是一些常用的subprocess函數:
subprocess.run(): 運行一個子進程,并等待它完成。返回一個subprocess.CompletedProcess實例,包含了子進程的返回碼、輸出、錯誤輸出等信息。subprocess.Popen(): 創建一個子進程,并返回一個Popen實例??梢杂脕砜刂谱舆M程的輸入/輸出/錯誤管道,以及等待子進程完成等。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管理進程。你可以根據自己的需求選擇合適的庫和函數。