天天看點

Python系統程序管理子產品

子產品:psutil

psutil是一個跨平台庫,可以很輕松的為我們實作擷取系統運作的程序和資源使用率等資訊。

功能:主要是為了系統監控

安裝:

1

2

3

4

<code>wget https:</code><code>//pypi</code><code>.python.org</code><code>/packages/source/p/psutil/psutil-2</code><code>.0.0.</code><code>tar</code><code>.gz --no-check-certificate</code>

<code>tar</code> <code>-zxvf psutil-2.0.0.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>psutil-2.0.0</code>

<code>python setup.py </code><code>install</code>

程序資訊:  

進行資訊主要包括以下幾個部分:

程序名稱

路徑

狀态

系統資源使用率

Psutil.Process() 使用方法

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<code>import</code> <code>psutil,datetime</code>

<code>psutil.pids() </code><code># 列出所有程序PID</code>

<code>a </code><code>=</code> <code>psutil.Process(xxx) </code><code># 執行個體化Process對象,xxx為一個程序的PID</code>

<code>a.name() </code><code># 程序名</code>

<code>a.exe() </code><code># 程序bin路徑</code>

<code>a.cwd() </code><code># 程序工作目錄絕對路徑</code>

<code>a.status() </code><code># 程序狀态</code>

<code>a.create_time() </code><code># 程序建立時間,時間戳格式</code>

<code>datetime.datetime.formtimestamp(a.create_time()).strftime(</code><code>'%Y-%m-%d %H:%M:%S'</code><code>) </code><code># 自然時間格式</code>

<code>a.uids() </code><code># 程序UID資訊</code>

<code>a.gids() </code><code># 程序GID資訊</code>

<code>a.cpu_times() </code><code># 程序CPU時間資訊,包括user、system兩個CPU時間</code>

<code>a.cpu_affinity() </code><code># get程序CPU親和度,如果設定程序CPU親和度,将CPU号作為參數即可</code>

<code>a.memory_percent() </code><code># 程序記憶體使用率</code>

<code>a.memory_info() </code><code># 程序記憶體rss、vms資訊</code>

<code>a.io_counters() </code><code># 程序IO資訊,包括讀寫IO數及位元組數</code>

<code>a.connections() </code><code># 傳回打開程序的socket 的namedutples 清單,包括fd、family、laddr等資訊</code>

<code>a.num_threads() </code><code># 程序開啟的線程數</code>

作用:擷取使用者啟動的應用程式程序資訊,以便跟蹤程式程序的運作狀态popen類的使用:

使用方法:

<code>import</code> <code>psutil</code>

<code>from</code> <code>subprocess </code><code>import</code> <code>PIPE</code>

<code># 通過psutil的Popen方法啟動的應用程式,可以跟蹤被程式運作的所有相關資訊</code>

<code>a</code><code>=</code><code>psutil.Popen([</code><code>'/usr/bin/python'</code><code>,</code><code>'-c'</code><code>,</code><code>'print('</code><code>hello</code><code>')'</code><code>],stdout</code><code>=</code><code>PIPE)</code>

<code>a.name()</code>

<code>a.username()</code>

<code>a.communicate()</code>

<code>a.cpu_times()</code>

本文轉自Grodd51CTO部落格,原文連結:http://blog.51cto.com/juispan/2050034,如需轉載請自行聯系原作者