2011-05-16 26 views

cevap

4

/Proc dizinindeki bir işlem hakkında bilgi bulabilirsiniz (/proc/<PID>).

open(os.path.join('/proc', str(pid), 'stat')).readline().split()[2]=='T' 

DÜZENLEME: Sen psuti l kullanabilirsiniz

re.sub(r'\(.*\)', '()', open(os.path.join('/proc', str(pid), 'stat')).readline()).split()[2]=='T' 
+0

os.path.join kullanmayın! ... bekleyin, bu saf linux sorudur. – janislaw

+0

@janislaw - teşekkürler. –

4

D Kesintisiz uyku hali (genellikle IO) R Çalışıyorken veya çalıştırılabilirken (çalışma kuyruğunda) S Kesintisiz uyku (bir olayın tamamlanması bekleniyor) T Bir iş kontrol sinyaliyle veya izlenme nedeniyle durduruldu. W paging (2.6.xx kernel'den beri geçerli değil) X ölü (asla görülmemelidir) Z Ayrılmaz ("zombi") işlemi sonlandırılır, ancak ebeveyn tarafından okunmaz.

+0

10 Teşekkür ederim, ps axo fname, stat, pid kullandım ve aynen söylediğin gibi çalıştım, bunun için STAT değerini bilmiyordum. – CobraBytez

2

: Bu bir sonraki ifadesi orijinal bir (muhtemelen nadir) hatayı düzeltir Özellikle, bu piton ifadesi ile çalıştırmak durumunu bulabilirsiniz

>>> import psutil 
>>> pid = 1243 
>>> p = psutil.Process(pid) 
>>> p.status 
0 
>>> str(p.status) 
'running' 
>>> p.status == psutil.STATUS_RUNNING 
True 
>>> 
>>> p.suspend() 
>>> p.status 
3 
>>> str(p.status) 
'stopped' 
>>> p.status == psutil.STATUS_STOPPED 
True 
>>> 
>>> p.resume() 
>>> str(p.status) 
'running' 
>>> 
İlgili konular