我正在尝试从氮气到同一台机器上的单独Erlang节点进行调用(目前正在从氮气控制台进行测试,但最终的目标是从webapp调用此另一个节点)。我的主目录中设置了.erlang.cookie
文件。
首次尝试,使用erl -name node_a
启动其他节点,然后load
和start
应用程序,然后执行
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?
答案 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设置为相同。
如果有人想把它作为一个单独的答案,请继续,以便我可以接受你的(我不能接受我自己的另一天)。