2009-05-16 10 views
6

노드에 대한 RPC 호출을하는 방법이 있지만 해당 노드에 출력이 표시됩니다 (실제로는 호출 노드가 아님). 호출 노드가 출력을 표시하지 않으면 방해가됩니다.)Erlang : 해당 노드에 출력이있는 노드에 대한 RPC

내가

rpc:call(Node, erlang, display, [ someTerm ]). 

를 사용하고 내가 정말 원하는 노드의 "someTerm"을 표시 것을 이해하지만이 때문에, 원격 노드 터미널에 표시되는 실행 방법의 결과를 얻을 수 있습니다 노드에서 ls 실행 시도가 주어진 경우 :

rpc:call(Node, c, ls, []). 

실제로 노드 내용에 폴더 내용을 기록합니다.

하나의 노드에서 프리젠 테이션을 구동 할 수 있지만 운전중인 노드를 가지고있는 아이디어는 동작 기록을 표시합니다.

+0

rpc : node()에 call (Node, c, ls, [])이 결과를 표시하지만 노드에 표시하지 않습니다. . Node에 대한 결과를보고 싶습니까? 마지막 문장은 그것을 말한다. –

답변

9

봅니다 ;-)

rpc:call(Node, c, ls, []). 

하거나 Node

group_leader(rpc:call(Node, erlang, whereis, [user]), self()), 
c:ls(), 
group_leader(whereis(user), self()). 
의 다른 단자에 로컬 프로세스의 출력을 재 Node

spawn(Node, fun()->group_leader(whereis(user),self()), c:ls() end). 

또는 훨씬 더 재미있는 예에 표시 할 때

+0

사과 .. 매우 저조한 표현 - 다시 표현했습니다 –

+0

출력을 다른 노드로 리디렉션하는 방법을 추가했습니다. –

관련 문제