氮气中的Erlang饼干

时间:2012-05-09 18:41:40

标签: erlang rpc nitrogen

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

首次尝试,使用erl -name node_a启动其他节点,然后loadstart应用程序,然后执行

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' ** 
<{1>}在node_a控制台中。我认为这意味着Nitrogen不会读取与node_a相同的cookie文件。有没有办法手动设置其cookie?有没有办法让两个节点玩得很好而不为两者设置相同的cookie?

3 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分: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

答案 2 :(得分:1)

比我想象的更简单,虽然它似乎没有记录在脚本代码本身以外的任何地方; bin/nitrogen接受-setcookie命令行选项,就像erl一样。它也接受-name-sname,但这两者都没有特别相关。

使用bighostkim的方法告诉我,默认的氮cookie实际上是“nitrogen”,所以另一个(安全性较低)选项是将另一个节点的cookie设置为相同。

如果有人想把它作为一个单独的答案,请继续,以便我可以接受你的(我不能接受我自己的另一天)。