我想动态地模拟erl -sname example -hidden
的行为。如何在群集中删除节点的可见性?
请参阅@mwt在@Yasir Arsanukaev的评论,以进一步澄清我正在尝试做的事情。
答案 0 :(得分:4)
尝试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().
[]
或者,如果您希望节点从其他节点“nodes()
”中删除自己:
(bar@dt)1> nodes().
[foo@dt]
(bar@dt)2> rpc:eval_everywhere(erlang, disconnect_node, [node()]).
abcast
(bar@dt)3> nodes().
[]
如果节点是使用密钥-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).
[]