1

我正在尝试从氮气调用同一台机器上的单独 Erlang 节点(目前从 Nitrogen 控制台对其进行测试,但最终目标是从 webapp 调用另一个节点)。我.erlang.cookie在我的主目录中设置了一个文件。

第一次尝试,使用 启动另一个节点erl -name node_a,然后loading 和starting 应用程序,然后执行

nitrogen@127.0.0.1> rpc:call(node_a@mymachine.fully.qualified.host, ps_bc, generate, [arglist]).

给我

{badrpc, nodedown}

在氮气控制台中,以及

=ERROR REPORT==== 9-May-2012::14:25:28 ===
** Connection attempt from disallowed node 'nitrogen@127.0.0.1' ** 

node_a控制台中。我认为这意味着 Nitrogen 读取的 cookie 文件与node_a. 有没有办法手动设置它的cookie?有没有办法让两个节点玩得很好而不为两者设置相同的cookie?

4

3 回答 3

2

指定 Erlang cookie 的推荐位置是 etc/vm.args。第一行应该是-setcookie一行。

作品中有新的文档将正确记录指定 erlang cookie。感谢您指出它实际上没有记录在任何地方。事实上,新文档将包括一个完整的配置设置部分来帮助这种事情。再次感谢!

当前可以在https://github.com/choptastic/nitrogen_core/blob/config-docs/doc/org-mode/config.org找到用于配置的“in-the-works”文档(请注意,此文档非常原始)。

编辑:这现在正式记录在这里: http: //nitrogenproject.com/doc/config.html

于 2012-09-09T05:10:47.417 回答
1

是的,有一种方法可以为许多 erlang 节点使用相同的 cookie。对于这种情况,您不能对所有节点使用 -setcooke,也不能使用 erlang:setcookie/1。

我对氮气一无所知,但如果是连接问题,请检查以下内容

从氮节点

> node().
> erlang:get_cookie().

从您的节点

> node().
> erlang:get_cookie().

如果 cookie 不同,请使用 -setcookie 启动您的节点

~$erl -name node_a@127.0.0.1 -setcookie nitrogen_cookie
于 2012-05-09T20:57:05.103 回答
1

比我想象的要简单,尽管除了脚本代码本身之外似乎没有记录在任何地方;bin/nitrogen就像接受-setcookie命令行选项一样erl。它也接受-name和接受-sname,尽管在这里两者都不是特别相关。

使用 bighostkim 的方法告诉我,默认的氮气 cookie 实际上是“ nitrogen”,因此另一个(不太安全)选项是将其他节点的 cookie 设置为相同。

如果有人想将此作为单独的答案,请继续,以便我可以接受您的答案(我不能再接受我自己的答案)。

于 2012-05-10T02:48:03.147 回答