1. 程式人生 > >Python之——系統程序管理方法

Python之——系統程序管理方法

獲得當前系統的程序資訊,可以讓運維人員得知應用程式的執行狀態,包括程序的啟動時間、檢視或設定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()"