我有两个不同的cookie节点。我正在尝试拨打电话,如下所示,但我每次都会收到{badrpc,nodedown}。
onenode@localhost>rpc:call(othernode@localhost,erlang,system_info,[otp_release]).
我尝试在google上找到并最终在以下链接中试用它们但仍然没有成功"。
以下是我尝试过的一些链接:
你能帮帮我吗。
EDIT -1:两个节点都托管在localhost中。
答案 0 :(得分:2)
在执行对具有不同cookie
的节点的rpc调用之前,必须执行以下函数erlang:set_cookie(other_node@localhost, other_node_cookie).
更多信息:http://erlang.org/doc/reference_manual/distributed.html
答案 1 :(得分:1)
根据rpc.erl,它使用gen_server
模块进行通用的erlang调用,gen_server
使用gen.erl
模块进行调用,使用here使用https://github.com/SlavekRydval/GoatJira see !!
in this answer 1}}选项作为noconnect
的选项。
根据Erlang文档:
如果目标节点必须自动连接以执行发送,则返回noconnect。
另一个问题是不同的cookie。根据Erlang文档:
当节点尝试连接到另一个节点时,会比较神奇的cookie。如果它们不匹配,则连接的节点拒绝连接。
因此,如果节点之间没有任何连接,则您的调用不会创建一个,并且您无法使用不同的Cookie连接Erlang节点。