正如文档中所写(并在@Soup d'Campbells的评论中回答),-sname
and-name
标志不需要主机名,并且会自动用主机Host
的 sid 填充节点 ID 的部分(简称不完全限定 - sname,-name 的 FQDN):
-sname Name 使 Erlang 运行时系统成为一个分布式节点,类似于 -name,但节点名称 Name@Host 的主机名部分将是短名称,不是完全限定的。
如果 DNS(域名系统)没有运行,这有时是运行分布式 Erlang 的唯一方法。使用 -sname 标志运行的节点和使用 -name 标志运行的节点之间不能进行通信,因为节点名称在分布式 Erlang 系统中必须是唯一的。
-name Name 使 Erlang 运行时系统成为一个分布式节点。此标志调用节点变为分布式所需的所有网络服务器。参见 net_kernel(3)。还确保在 Erlang 启动之前 epmd 在当前主机上运行。请参阅 epmd(1)。
节点的名称将为 Name@Host,其中 Host 是当前主机的标准主机名。对于短名称,请改用 -sname 标志。
如果您计划使用分布式节点,并且您的域中确实有 DNS,请使用该-name
标志,因为它还将调用所有必要的网络服务器(如上所述)。
你自己看:
$> erl -sname bouly
(bouly@myserver)1>
$> erl -name bouly
(bouly@myserver.myhome.net)1>