$ 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 ...
fiei3ece1#
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).
qqrboqgw2#
引用何塞·瓦利姆的话:发生这种情况的原因可能是hostname -f没有返回值,也就是说,您的机器不知道在网络中应该如何命名。您可以使用--sname,给予全名,如--name foo@IP_ADDRESS或在机器之间有意义的东西(这样它们就可以找到彼此)。另一个解决方案是set the hostname directly(sudo hostname <FQDN>),或者更新主机文件(例如,Linux中的/etc/hosts)。
--name foo@IP_ADDRESS
sudo hostname <FQDN>
/etc/hosts
2条答案
按热度按时间fiei3ece1#
erl -sname lofa
而非erl -name lofa
。说明:
--name
需要一个完全限定名,即<username>@<host>
。--sname
接受一个短名称,即仅为用户名,从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).
qqrboqgw2#
引用何塞·瓦利姆的话:
发生这种情况的原因可能是
hostname -f
没有返回值,也就是说,您的机器不知道在网络中应该如何命名。您可以使用--sname
,给予全名,如--name foo@IP_ADDRESS
或在机器之间有意义的东西(这样它们就可以找到彼此)。另一个解决方案是set the hostname directly(
sudo hostname <FQDN>
),或者更新主机文件(例如,Linux中的/etc/hosts
)。