2009-05-16 26 views
6

¿Hay alguna manera de hacer una llamada rpc a un nodo, pero que la salida se muestre en ese nodo, no solo en el nodo llamante (de hecho, yo no sería demasiado molesto si el nodo llamante no mostró la salida).Erlang: RPC a un nodo con salida en ese nodo

Si bien entiendo que puedo usar

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

y que mostrará "someTerm" en el nodo, lo que realmente quiero es conseguir el resultado de un método ejecutado aparece en el terminal de nodo remoto, de manera que dado el intento de ejecutar ls en el nodo:

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

se escriba realmente los resultados de los contenidos de la carpeta a la terminal de nodo.

La idea es que puedo conducir una presentación desde un solo nodo, pero los nodos que estoy manejando muestran el historial de acciones en ellos.

+0

rpc: call (Node, c, ls, []) muestra el resultado en el nodo() pero no en el nodo . ¿Quiere decir que quiere ver el resultado en el nodo? Tu última oración dilo. –

Respuesta

9

Try ;-)

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

o cuando se desea mostrarlo en Node

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

o mucho más divertido ejemplo, que redirigir la salida del proceso local a otro terminal de Node

group_leader(rpc:call(Node, erlang, whereis, [user]), self()), 
c:ls(), 
group_leader(whereis(user), self()). 
+0

disculpas .. Lo expresé muy mal - He vuelto a expresar –

+0

He añadido un ejemplo de cómo redirigir la salida a otro nodo. –

Cuestiones relacionadas