python psutil 显示 procname 的结果?
python psutil show result of procname?
如果我使用 procname 然后 运行 psutil 作为 shell 命令,我会看到进程名称的变化。但是,如果我使用 python psutil 模块,则不会显示更改。 (见下面的代码)。
从 http://psutil.readthedocs.io/en/latest/#processes 看来,进程以某种方式被缓存。不过,它还说,它们在第一次调用时被缓存,在这种情况下 "ought to" 下面的代码可以工作,是吗?如果问题出在预缓存上,是否有办法告诉 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()
方法来使缓存失效。
如果我使用 procname 然后 运行 psutil 作为 shell 命令,我会看到进程名称的变化。但是,如果我使用 python psutil 模块,则不会显示更改。 (见下面的代码)。
从 http://psutil.readthedocs.io/en/latest/#processes 看来,进程以某种方式被缓存。不过,它还说,它们在第一次调用时被缓存,在这种情况下 "ought to" 下面的代码可以工作,是吗?如果问题出在预缓存上,是否有办法告诉 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()
方法来使缓存失效。