Erlang : RPC 到一个节点,该节点上有输出
Posted
技术标签:
【中文标题】Erlang : RPC 到一个节点,该节点上有输出【英文标题】:Erlang : RPC to a node with output on that node 【发布时间】:2009-05-16 11:05:29 【问题描述】:有没有办法对节点进行 rpc 调用,但在该节点上显示输出,而不仅仅是在调用节点上(事实上,如果调用节点没有显示输出,我不会太在意) .
虽然我知道我可以使用
rpc:call( Node, erlang, display, [ someTerm ] ).
这将在 Node 上显示“someTerm”,我真正想要的是在远程节点终端上显示执行方法的结果,以便尝试在 Node 上运行 ls:
rpc:call( Node, c, ls, [] ).
它实际上会将文件夹内容的结果写入Node的终端。
我的想法是我可以从单个节点驱动演示,但让我正在驱动的节点显示它们的操作历史记录。
【问题讨论】:
rpc:call( Node, c, ls, [] ) 在 node() 上显示结果,但不在 Node 上。你的意思是你想在节点上看到结果吗?你的最后一句话说出来。 【参考方案1】:试试 ;-)
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()).
【讨论】:
道歉..我表达得很糟糕-我已经重新表达了 我添加了如何将输出重定向到另一个节点的示例。以上是关于Erlang : RPC 到一个节点,该节点上有输出的主要内容,如果未能解决你的问题,请参考以下文章
在 Erlang 中通过 RPC 在远程节点上创建套接字时,无法接受套接字上的连接
如何连接到已注册的节点(Erlang)并从 Ejabberd 使用它