设置Erlang节点失败,并显示“无法设置长节点名!请检查配置”

wi3ka0sx  于 2022-12-08  发布在  Erlang
关注(0)|答案(2)|浏览(247)
$ erl -name lofa
{error_logger,{{2008,6,18},{21,43,13}},"Can't set long node name! 
\nPlease check your configuration\n",[]}
# ... several stacktrace lines follow ...
fiei3ece

fiei3ece1#

    • TL; DR**请使用erl -sname lofa而非erl -name lofa

说明:

  • --name需要一个完全限定名,即<username>@<host>
  • --sname接受一个短名称,即仅为用户名,从hostname -f推断主机

因此,

iex --sname joe
erl -sname joe

相当于以下内容

iex --name joe@$(hostname -f)
erl -name joe@$(hostname -f)

I tested the above from Elixir 1.7.4 & Erlang/OTP 22.3.4.20 up to 1.12.1 & Erlang/OTP 24.0.2 (the latest as of this answer).

qqrboqgw

qqrboqgw2#

引用何塞·瓦利姆的话:
发生这种情况的原因可能是hostname -f没有返回值,也就是说,您的机器不知道在网络中应该如何命名。您可以使用--sname,给予全名,如--name foo@IP_ADDRESS或在机器之间有意义的东西(这样它们就可以找到彼此)。
另一个解决方案是set the hostname directlysudo hostname <FQDN>),或者更新主机文件(例如,Linux中的/etc/hosts)。

相关问题