2009-05-16 7 views
6

Czy istnieje sposób wykonania wywołania RPC do węzła, ale dane wyjściowe są wyświetlane w tym węźle, a nie tylko w węźle wywołującym (w rzeczywistości nie byłbym zbyt przeszkadzał, jeśli węzeł wywołujący nie wyświetlił wyniku).Erlang: wywołanie RPC do węzła z wyjściem w tym węźle

Choć rozumiem, że można używać

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

i wyświetli „someTerm” na węźle, co naprawdę chcę to uzyskać wynik wykonanego metodą wyświetlanej na terminalu zdalnym węźle, tak że biorąc pod uwagę próbę uruchomienia ls na węźle:

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

to faktycznie zapisze wyniki zawartości folderu do terminala węzła.

Idea polegająca na tym, że mogę prowadzić prezentację z jednego węzła, ale mam węzły, którymi kieruję, wyświetla historię działań na nich.

+0

rpc: call (Węzeł, c, ls, []) pokazuje wynik w węźle(), ale nie w węźle . Czy chcesz zobaczyć wynik w węźle? Twoje ostatnie zdanie to powiedz. –

Odpowiedz

9

Spróbuj ;-)

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

lub gdy chcesz wyświetlić go na Node

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

lub znacznie bardziej zabawny przykład, który przekierować dane wyjściowe procesu lokalnego do innego terminalu Node

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

przeprosiny .. Wyraziłem to bardzo słabo - mam ponownie wyrażone –

+0

Dodałem przykład jak przekierować wyjście do innego węzła. –

Powiązane problemy