【问题标题】:net_kernel:start fails with `{'EXIT',nodistribution}`net_kernel:start 失败并出现 `{'EXIT',nodistribution}`
【发布时间】:2020-05-05 08:01:29
【问题描述】:

我遇到了一个问题,希望有人可以帮助我。

我尝试通过以下方式启动net_kernel

net_kernel:start([test,shortnames]).

但我遇到了这个错误:

{error,
    {{shutdown,
         {failed_to_start_child,net_kernel,{'EXIT',nodistribution}}},
     {child,undefined,net_sup_dynamic,
         {erl_distribution,start_link,[[test,shortnames]]},
         permanent,1000,supervisor,
         [erl_distribution]}}}

=INFO REPORT==== 23-Apr-2017::21:07:43 ===
Protocol: "inet_tcp": register/listen error: econnrefused

惊人的提示是,当尝试通过以下方式启动 net_kernel 时:

erl -sname test

net_kernel会启动成功

另一个惊人的提示是,在操作系统启动并退出 erl shell 后至少启动一次 net_kernel 后,启动 net_kernel 的第一种方式将成功运行:|

( net_kernel:start([...]) )

经过一番搜索,我发现 CouchBase 和 RabbitMQ-Server 和 Ejabberd 以及其他一些使用 erlang 的应用程序都报告了这个错误(nodistribution error)

【问题讨论】:

    标签: erlang


    【解决方案1】:

    你没有运行 epmd,这就是 econnrefused 的意义所在。当您启动 net_kernel 时,它想向 epmd 注册一个名称,以便可以找到该节点。

    确保在您启动 net_kernel 时有一个 epmd 进程正在运行,我敢打赌问题会消失。

    关于erl -sname test 的工作,我希望为您启动 epmd?

    【讨论】:

      猜你喜欢
      • 2023-03-05
      • 1970-01-01
      • 2018-02-24
      • 1970-01-01
      • 2017-11-01
      • 2014-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多