我使用rpyc (v3.3.0)来获取运行在使用psutil模块的远程服务器上的进程列表。我的代码如下。
server='hkl20056309'
rpcClient = rpyc.classic.connect(server)
rpsutil = rpcClient.modules.psutil
procs = rpsutil.get_process_list()我正在正确地获取procs列表,但是一些进程属性没有正确设置。例如:
>>> 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)。如果我打印所有进程,我看到列表中的143Process对象的名称为None。但是在访问对象之后,我突然可以看到名称的正确值。
对于如何解决这个问题,有什么建议吗?
发布于 2015-01-06 13:09:11
在RPyC中从未见过这样的问题。这可能与这个过程有关。如果调用str(proc),然后调用proc._name,而不是打印,会有帮助吗?此外,您似乎正在尝试使用私有成员(_name)...也许这就是问题所在?难道没有一些公共属性可以使用吗?
https://stackoverflow.com/questions/27791272
复制相似问题