簡體   English   中英

python psutil顯示procname的結果?

[英]python psutil show result of procname?

如果我使用procname,然后將psutil作為shell命令運行,我會看到進程名稱的更改。 但是,如果我使用python psutil模塊,則不會顯示更改。 (請參見下面的代碼)。

http://psutil.readthedocs.io/en/latest/#processes看來,進程是以某種方式緩存的。 不過,它還說,它們是在第一次調用時被緩存的,在這種情況下,下面的“應該”代碼可以工作,是嗎? 如果問題是預緩存,是否有辦法告訴psutil刷新其緩存?

我知道我可以捕獲os.system調用的輸出並將其解析為手工制作的進程名稱,但是我希望可以利用psutil的功能。

import procname
import psutil
import os

procname.setprocname('xyzzzyzyz')

os.system('ps aux | grep xyzzzyzyz')
c = 0
X = psutil.process_iter(attrs=['name'])
for x in X:
    c+=1
    if x.name() in [ 'xyzzzyzyz', 'python']:
        print x
print c

for proc in psutil.process_iter():
     try:
         pinfo = proc.as_dict(attrs=['pid', 'name', 'username'])
     except psutil.NoSuchProcess:
         pass
     else:
         if pinfo['name'] in ['xyzzzyzyz', 'python']:
             print pinfo

psutil作者在這里。 不,當前沒有刷新Process()實例的方法。 似乎應該有,因為您的用例確實是合法的。 我將添加一個Process.refresh()方法來使緩存無效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM