我遇到了一个问题,希望有人能帮助我。
我尝试开始net_kernel:
net_kernel:start([test,shortnames]).
Run Code Online (Sandbox Code Playgroud)
但我遇到了这个错误:
{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
Run Code Online (Sandbox Code Playgroud)
惊人的提示是,当尝试开始时net_kernel:
erl -sname test
Run Code Online (Sandbox Code Playgroud)
net_kernel 将成功启动
另一个惊人的提示是,在net_kernel操作系统启动并退出 erl shell 后至少启动一次后,第一种启动方式net_kernel将成功运行:|
( net_kernel:start([...]) )
Run Code Online (Sandbox Code Playgroud)
经过一番搜索,我发现 CouchBase 和 RabbitMQ-Server 和 Ejabberd 以及其他一些使用 erlang 的应用程序,报告了这个错误( nodistribution error )
您没有运行 epmd,这就是问题所在econnrefused。你几时开始net_kernel它想要向 epmd 注册一个名称,以便可以找到该节点。
确保启动时有一个 epmd 进程正在运行net_kernel,我敢打赌问题就会消失。
关于erl -sname test工作,我希望您能启动 epmd?
| 归档时间: |
|
| 查看次数: |
1654 次 |
| 最近记录: |