Erlang ping node problem

廉价感情. 提交于 2020-05-12 13:56:16

问题


I made in erlang shell:

1> node().
nonode@nohost

But

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

Why? What's problem? Why not pong?

Thank you.


回答1:


You didn't start Erlang with -name or -sname, which means that the distribution subsystem was not started. Try this:

$ 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



回答2:


I am not 100% sure, but You started erl without "-name" oder "-sname". I believe net_adm:ping/1 only works in a distributed mode.




回答3:


If you are trying to ping an erlang node but getting a pang.

Check the cookie with erlang:get_cookie() it will be some random string set the cookie of another node with erlang:set_cookie(Node, Cookie) or you could pass the cookie to the flag -setcookie

for example:

(foo@earth) erlang:get_cookie().
ASYRQKVNIFHWIIJQZIYN

(foo@earth) erlang:set_cookie(node(), 'secret cookie'). 
true 

net:ping('mongooseim@localhost').
pong

Check out the docs



来源:https://stackoverflow.com/questions/5539525/erlang-ping-node-problem

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!