Erlang中的节点命名

Erlang中的节点命名,erlang,Erlang,我正在使用5.4文档中的,遇到了节点名问题 My MacBook的默认名称(jamess MacBook)与Erlang的节点命名方案不匹配,原因是短划线: (salt@jamess-macbook)4> {my_process, pepper@jamess-macbook} ! start ** exception error: bad argument in an arithmetic expression in operator -/2 called as

我正在使用5.4文档中的,遇到了节点名问题

My MacBook的默认名称(
jamess MacBook
)与Erlang的节点命名方案不匹配,原因是短划线:

(salt@jamess-macbook)4> {my_process, pepper@jamess-macbook} ! start
** exception error: bad argument in an arithmetic expression
     in operator  -/2
        called as pepper@jamess - macbook
我确信有一个简单的方法可以解决这个问题,除了重命名我想要运行Erlang的所有机器之外,但是我在文档中看不到它


有什么建议吗?

使用以下命令启动Erlang解释器:

$ erl -sname node_name
其中,
node\u name
是您要用来指代机器的名称


您甚至可以通过启动解释器的多个实例在一台机器上模拟分布式系统,每个实例具有不同的节点名。

您只需正确引用atom即可<代码>'pepper@jamess-macbook“(带单引号)是节点的名称

一个原子应该包在一个盒子里 如果不是以 小写字母或如果包含 字母数字以外的其他字符 字符、下划线(\)或@。 --


使用短节点名(
-sname
)会产生各种其他后果(与长节点名节点的互操作性有限,无法将dns信息加载到inet_db中等等)。

啊,我不知道您可以提供完整的节点名(name@machine)通过斯内姆!更妙的是,我尝试了双引号,而不是单引号;事实上,我没有意识到它们在语义上是不同的!