【问题标题】:Erlang ping node problemErlang ping 节点问题
【发布时间】:2019-07-14 02:14:08
【问题描述】:

我用 erlang shell 制作的:

1> node().
nonode@nohost

但是

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

为什么?什么问题?为什么不用乒乓球?

谢谢。

【问题讨论】:

    标签: erlang ping


    【解决方案1】:

    你没有用-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
    

    【讨论】:

    • 就我而言,没有net_adm
    • @weima 你有this吗?
    【解决方案2】:

    我不是 100% 确定,但是您在没有“-name”或“-sname”的情况下启动了 erl。我相信 net_adm:ping/1 只能在分布式模式下工作。

    【讨论】:

      【解决方案3】:

      如果您尝试 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

      【讨论】:

        猜你喜欢
        • 2011-04-11
        • 1970-01-01
        • 2013-01-01
        • 2014-10-02
        • 2010-10-01
        • 2021-05-06
        • 1970-01-01
        • 1970-01-01
        • 2019-07-19
        相关资源
        最近更新 更多