代码之家  ›  专栏  ›  技术社区  ›  James Brady

Erlang中的节点命名

  •  5
  • James Brady  · 技术社区  · 17 年前

    distributed programming tutorial 从5.4文档中删除,并且遇到了节点名称问题。

    我的MacBook的默认名称( jamess-macbook

    (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的所有机器之外,但是我在文档中看不到它。

    有什么建议吗?

    2 回复  |  直到 17 年前
        1
  •  14
  •   archaelus    17 年前

    你只需要正确地引用atom。 'pepper@jamess-macbook' (带单引号)是节点的名称。

    一个原子应该包在一个盒子里 小写字母或如果包含 字母数字以外的其他字符 -- Erlang Reference Manual

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

        2
  •  4
  •   mipadi    17 年前

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

    $ erl -sname node_name
    

    哪里 node_name

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