【问题标题】:Erlang nodes can't see each otherErlang 节点互相看不到
【发布时间】:2011-03-29 20:21:50
【问题描述】:

我是 Erlang 新手,想在我的笔记本电脑上设置两个节点。

在一个终端中我输入:

eli@elimayost: ~/erlang_apps> erl -sname foo -setcookie secret

在第二个终端:

eli@elimayost: ~/erlang_apps> erl -sname bar -setcookie secret

如果我使用第一个终端 ping 第二个终端:

(foo@elimayost)1> net_adm:ping(bar@elimayost).

我得到一个 pang 响应(如果我使用第二个术语来 ping 第一个术语,也会得到相同的响应)。

知道为什么吗?

【问题讨论】:

  • 你能执行erl_epmd:names()并发布输出吗?
  • 我将您未注册的帐户合并到您的已注册帐户中。您现在可以将 cmets 留在答案下,编辑您的问题等。我将您之前的答案转换为 @mjcopple 答案下的评论。

标签: erlang


【解决方案1】:

这是一个 DNS 问题,在 DNS 上找不到您的主机名“elimayost”。您可以使用 'localhost' 作为主机部分,就像 'foo@localhost' 和 'bar@localhost' 一样,它将始终有效。

【讨论】:

    【解决方案2】:

    您检查系统日志是否有错误?

    apparmor 是否激活?也许关掉它再试一次。有一天,我在运行 apparmor 时产生了非常奇怪的效果……但这只是一种猜测。

    【讨论】:

      【解决方案3】:

      尝试像这样启动节点:

      eli@elimayost: ~/erlang_apps> erl -sname foo@elimayost -setcookie secret
      eli@elimayost: ~/erlang_apps> erl -sname bar@elimayost -setcookie secret
      

      然后像以前一样 ping 它们。

      (foo@elimayost)1> net_adm:ping(bar@elimayost).
      

      如果这对您不起作用,请尝试从节点自身 ping 节点。

      【讨论】:

      • mjcopple:感谢您的回答。我按照您的建议启动了节点。他们仍然看不到对方。我可以从节点内 ping 两个节点,但不能从另一个节点。我正在 OpenSUSE 11.3 上尝试它。在 Ubuntu 10.04 上尝试时它工作正常。两台机器都是在Virtual Box下运行的虚拟机。
      猜你喜欢
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 2014-10-02
      • 2019-08-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多