1

我正在使用 rpyc (v 3.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),直到我访问该对象。如果我打印所有进程,我会看到列表中第 143 个进程对象的名称为 None。但是在我访问对象之后,突然我可以看到名称的正确值。

关于如何解决此问题的任何建议?

4

1 回答 1

1

从未见过 RPyC 出现这样的问题。这可能与该过程有关。如果你调用 str(proc) 然后调用 proc._name,而不是打印,它有帮助吗?此外,您似乎正在尝试使用私人成员(_name)......也许这就是问题所在?不是有一些公共财产可以使用吗?

于 2015-01-06T05:09:11.060 回答