2013-03-11 103 views
4

我在Linux x86-64系統上運行。從一個Python(2.6)腳本中,我希望定期檢查一個給定的進程(由pid標識)是否已經變成「停止」/殭屍(這意味着進程表中的入口存在,但進程沒有任何作用)。知道進程消耗了多少CPU也是很好的(類似於'top'命令顯示的那樣)。從Python中檢查進程狀態

有人能給我一些關於如何在Python中獲取這些指針的指針嗎?

+0

通過subprocess.Popen()運行'ps'命令。每一行都是一個進程,而STAT列中的Z表示你有一個殭屍。 ps有很多參數('man ps'),可以給你很多信息。 – tdelaney 2013-03-11 18:58:59

回答

15

我會用psutil library

import psutil 

proc = psutil.Process(pid) 
if proc.status() == psutil.STATUS_ZOMBIE: 
    # Zombie process! 
+0

'proc.get_cpu_times()','proc.get_cpu_percent(interval = 1.0)'獲取CPU使用率。 – jfs 2013-03-11 19:37:22

3

你可以得到如下頂級導致蟒蛇:

linux

import sys, os 
f = os.popen("top -p 1 -n 1", "r") 
text = f.read() 
print text 

更新

windows

from os import popen 
from sys import stdin 

ps = popen("C:/WINDOWS/system32/tasklist.exe","r") 
pp = ps.readlines() 
ps.close() 

# wow, look at the robust parser! 
pp.pop(0)  # blank line 
ph = pp.pop(0) # header line 
pp.pop(0)  # === 

print ("%d processes reported." % len(pp)) 
print ("First process in list:") 
print (pp[0]) 

stdin.readline() 
+1

假設你在一個擁有它的操作系統上(這是OP) – 2013-03-11 19:02:31