2015-01-06 1 views
1

rpyc (v 3.3.0)를 사용하여 psutil 모듈을 사용하여 원격 서버에서 실행중인 프로세스의 목록을 가져옵니다. 내 코드는 아래와 같습니다.오브젝트의 rpyc 마샬링과 관련된 문제

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으로 표시됩니다. 그러나 객체에 액세스하면 갑자기 이름에 대한 올바른 값을 볼 수 있습니다.

이 문제를 해결할 수있는 방법에 대한 제안 사항이 있으십니까?

+0

불행히도 모든 내용이 업데이트되었는지 확인하기 위해'procs' 객체를 출력해야합니다. 이것은 알려진 문제입니까? – Alok

답변

1

RPyC에서 이와 같은 문제가 발생하지 않았습니다. 아마 그 프로세스와 관련이있을 것입니다. print 대신 str (proc)을 호출 한 다음 proc._name을 호출하면 도움이됩니까? 또한 개인 회원 (_name)을 사용하려는 것 같습니다 ... 아마도 그게 문제입니까? 당신이 사용할 수있는 공공 재산이 있습니까?