Erlang: RPC для узла с выводом на этом узле - PullRequest
8 голосов
/ 16 мая 2009

Есть ли способ сделать rpc-вызов к узлу, но выводить вывод на этом узле, а не только на вызывающем узле (на самом деле я бы не стал слишком беспокоиться, если бы вызывающий узел не отображал вывод) .

Пока я понимаю, что могу использовать

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

, и на Node будет отображаться «someTerm». Я действительно хочу получить результат выполнения метода, отображаемого на терминале удаленного узла, чтобы при попытке запустить ls на Node:

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

фактически запишет результаты содержимого папки в терминал Node.

Идея заключается в том, что я могу управлять презентацией с одного узла, но при этом у меня есть те узлы, на которых я работаю, отображать историю действий над ними.

1 Ответ

9 голосов
/ 17 мая 2009

Попробуйте; -)

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

или когда вы хотите отобразить его на Node

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

или гораздо более забавный пример, который перенаправляет вывод локального процесса на другой терминал Node

group_leader(rpc:call(Node, erlang, whereis, [user]), self()),
c:ls(),
group_leader(whereis(user), self()).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...