我正在使用该net_adm
模块,似乎无法与 localhost 节点一起工作。我的机器名为:
> hostname
walden
我启动了一些本地短名称节点:
> erl -sname one -setcookie monster
Erlang R16B (erts-5.10.1) [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V5.10.1 (abort with ^G)
(one@walden)1>
和
> erl -sname two -setcookie monster
Erlang R16B (erts-5.10.1) [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V5.10.1 (abort with ^G)
(two@walden)1>
到目前为止,一切都很好。
(two@walden)1> net_adm:names().
{ok,[{"two",63489},{"one",63491}]}
(two@walden)2> net_adm:localhost().
"walden"
(two@walden)3> net_adm:names().
{ok,[{"two",63489},{"one",63491}]}
两个本地节点都已注册,但未连接,这是预期的。
(two@walden)4> nodes().
[]
返回节点one
:
(one@walden)1> net_adm:names(two).
{error,nxdomain}
(one@walden)2> net_adm:names('two@walden').
{error,nxdomain}
(one@walden)3> net_adm:dns_hostname(two).
{error,two}
(one@walden)4> net_adm:dns_hostname(two@walden).
{error,two@walden}
Erlang 正确地将我的 localhost 识别为walden
但dns_hostname/1
返回错误。回到two
:
(two@walden)5> net_adm:ping(one@walden).
pong
(two@walden)6> nodes().
[one@walden]
和
(one@walden)5> nodes().
[two@walden]
好吧,无赖。.hosts.erlang
为 localhost 开发节点使用文件真的很方便——通过——net_adm:worlds/0
但我似乎有点卡住了。我是否遗漏了什么或做错了什么?我的整个系统是否配置错误?