Python之——系統程序管理方法
阿新 • • 發佈:2019-02-11
獲得當前系統的程序資訊,可以讓運維人員得知應用程式的執行狀態,包括程序的啟動時間、檢視或設定CPU親和度、記憶體使用率、IO資訊、socket連線、執行緒數等,這些資訊可以呈現出指定程序是否存活、資源利用情況,為開發人員的程式碼優化、問題定位提供很好的資料參考。
1、程序資訊
# -*- coding:UTF-8 -*- ''' 獲取當前系統的程序資訊 Created on 2018年1月3日 @author: liuyazhuang ''' import psutil #列出所有程序的PID print psutil.pids() #例項化一個Process物件,引數為一程序PID p = psutil.Process(364) print p.name() #獲取進行bin的路徑 print p.exe() #獲取程序工作目錄絕對路徑 print p.cwd() #程序的狀態 print p.status() #程序建立的時間 print p.create_time() #程序uid資訊 print p.uids() #程序gid資訊 print p.gids() #程序CPU時間資訊,包括user、system兩個CPU時間 print p.cpu_times() #獲取程序cpu的親和度 print p.cpu_affinity() #獲取程序記憶體利用率 print p.memory_percent() #程序記憶體rss、vms資訊 print p.memory_info() #程序IO資訊,包括讀寫IO數及位元組數 print p.io_counters() #獲取開啟程序socket的namedutples列表,包括fs、family、laddr等資訊 print p.connections() #程序開啟的執行緒數 print p.num_threads()
2、popen類的使用
# -*- coding:UTF-8 -*- ''' 獲取使用者啟動的應用程式程序資訊 Created on 2018年1月3日 @author: liuyazhuang ''' import psutil from subprocess import PIPE from sys import stdout #啟動應用程式,跟蹤該應用程式的程序資訊 p = psutil.Popen(["D:\\Program Files\\Python27\\python.exe", "-c", "print 'hello'"], stdout = PIPE) print p.name() print p.username() print p.communicate() try: print p.cpu_times() except: print "獲取不到p.cpu_times()"