[英]Erlang: How can I remove a node from other nodes' nodes()?
I want to simulate the behavior of erl -sname example -hidden
but dynamically. 我想模拟
erl -sname example -hidden
但是动态的行为。 How can I drop a node out of visibility in a cluster? 如何在群集中删除节点的可见性?
See the comments by @mwt at @Yasir Arsanukaev for additional clarification of what I'm trying to do. 请参阅@mwt在@Yasir Arsanukaev的评论,以进一步澄清我正在尝试做什么。
Try erlang:disconnect_node/1
: 试试
erlang:disconnect_node/1
:
(bar@dt)1> nodes().
[]
(bar@dt)2> net_adm:ping('foo@dt').
pong
(bar@dt)3> nodes().
[foo@dt]
(bar@dt)4> erlang:disconnect_node('foo@dt').
true
(bar@dt)5> nodes().
[]
Or if you want a node to remove itself from other nodes' nodes()
: 或者,如果您希望节点从其他节点的
nodes()
删除自己:
(bar@dt)1> nodes().
[foo@dt]
(bar@dt)2> rpc:eval_everywhere(erlang, disconnect_node, [node()]).
abcast
(bar@dt)3> nodes().
[]
If the node was started with key -hidden
: 如果使用密钥
-hidden
启动节点:
(bar@dt)1> nodes(hidden).
[foo@dt]
(bar@dt)2> rpc:eval_everywhere(nodes(hidden), erlang, disconnect_node, [node()]).
abcast
(bar@dt)3> nodes(hidden).
[]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.