[英]Setting up Erlang node fails with "Can't set long node name! Please check your configuration"
$ 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 ...
這很可能發生,因為
hostname -f
沒有返回值,即您的機器不知道它應該如何在網絡中命名。 您可以使用--sname
,提供全名,例如--name foo@IP_ADDRESS
或機器之間有意義的東西(以便它們可以找到彼此)。
另一種解決方案是直接設置主機名( sudo hostname <FQDN>
),或更新主機文件(例如,Linux 中的/etc/hosts
)。
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)
我從 Elixir 1.7.4 & Erlang/OTP 22.3.4.20 到 1.12.1 & Erlang/OTP 24.0.2(這個答案的最新版本)測試了上述內容。
參考資料:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.