我在erlang shell中创建:
1> node().
nonode@nohost
但是
2> net_adm:ping(node()).
pang
为什么呢?什么问题?为什么不打乒乓球?
谢谢。
答案 0 :(得分:13)
您没有使用-name
或-sname
启动Erlang,这意味着未启动分发子系统。试试这个:
$ erl -sname mynode
Erlang R14B02 (erts-5.8.3) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.8.3 (abort with ^G)
(mynode@foobar)1> node().
mynode@foobar
(mynode@foobar)2> net_adm:ping(node()).
pong
答案 1 :(得分:3)
我不是百分百肯定,但你开始没有“-name”oder“-sname”。我相信net_adm:ping / 1只能在分布式模式下工作。
答案 2 :(得分:0)
如果您尝试ping一个erlang节点但得到pang
。
用erlang:get_cookie()
检查cookie,这将是一些随机字符串,用erlang:set_cookie(Node, Cookie)
设置另一个节点的cookie,或者您可以将cookie传递给标志-setcookie
例如:
(foo@earth) erlang:get_cookie().
ASYRQKVNIFHWIIJQZIYN
(foo@earth) erlang:set_cookie(node(), 'secret cookie').
true
net:ping('mongooseim@localhost').
pong
签出docs