2009-05-16 7 views
6

Gibt es eine Möglichkeit, einen RPC-Aufruf an einen Knoten zu machen, aber die Ausgabe wird auf diesem Knoten angezeigt, nicht nur auf dem aufrufenden Knoten (in der Tat würde ich auch nicht sein gestört, wenn der aufrufende Knoten die Ausgabe nicht anzeigt).Erlang: RPC zu einem Knoten mit Ausgabe auf diesem Knoten

Während ich verstehe, dass ich

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

verwenden können, und das wird „someTerm“ auf Knoten anzuzeigen, was ich wirklich wollen, ist das Ergebnis einer durchgeführten Verfahren auf dem entfernten Knoten Terminal angezeigt zu bekommen, so dass Bei dem Versuch, ls auf dem Knoten auszuführen:

wird es tatsächlich die Ergebnisse der Ordnerinhalte auf das Terminal von Node schreiben.

Die Idee ist, dass ich eine Präsentation von einem einzigen Knoten fahren kann, aber die Knoten, die ich fahre, zeigen die Geschichte der Aktionen auf ihnen.

+0

rpc: call (Knoten, c, ls, []) zeigt Ergebnis auf Knoten(), aber nicht auf Knoten . Meinst du, du willst das Ergebnis auf Node sehen? Dein letzter Satz sag es. –

Antwort

9

Try ;-)

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

oder wenn Sie es auf Node

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

oder viel lustigere Beispiel die Ausgabe an einen anderen Anschluss des lokalen Prozess der Node umleiten angezeigt

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

Entschuldigung .. Ich drückte das sehr schlecht aus - ich habe –

+0

neu ausgedrückt Ich habe Beispiel hinzugefügt, wie Ausgabe an einen anderen Knoten umleiten. –

Verwandte Themen