我正在使用rpyc(v 3.3.0)来获取使用psutil模块在远程服务器上运行的进程列表。我的代码如下。
server='hkl20056309'
rpcClient = rpyc.classic.connect(server)
rpsutil = rpcClient.modules.psutil
procs = rpsutil.get_process_list()
我正确获取了proc的列表但是没有正确设置某些进程属性。例如:
>>> procs[166]._name
'mingetty'
>>> procs[140]._name
>>> procs[141]._name
>>> procs[142]._name
>>> procs[142]
<psutil.Process(pid=1828, name='gatengine') at 17483536>
>>> procs[142]._name
'gatengine'
>>>
如果您在访问对象之前看到procs[142]._name
未打印(值为None
)。如果我打印所有进程,我会在列表中看到143rd进程对象的名称为None。但是在我访问该对象后,突然间我可以看到该名称的正确值。
有关如何解决此问题的任何建议?
答案 0 :(得分:1)
从未见过RPyC这样的问题。这可能与该流程有关。如果你调用str(proc)然后调用proc._name,而不是打印,它有帮助吗?此外,您似乎正在尝试使用私人会员(_name)......也许这就是问题所在?你可以使用一些公共财产吗?