Erlang ping节点问题

时间:2011-04-04 13:55:56

标签: erlang ping

我在erlang shell中创建:

1> node().
nonode@nohost

但是

2> net_adm:ping(node()). 
pang

为什么呢?什么问题?为什么不打乒乓球?

谢谢。

3 个答案:

答案 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