我将如何检查部署的节点是否可以相互看见?我试着做:
mix edeliver ping production --verbose 我得到了:
EDELIVER MY_IDEA WITH PING COMMAND
-----> pinging production servers
production node: 0
user : bitnami
host : xxx
path : /home/bitnami
response: pong
production node: 1
user : bitnami
host : yyy
path : /home/bitnami
response: pong我的应用程序被部署到:
~/my_idea/releases/0.0.1我知道这可以通过命令行在灵丹妙药中实现,使用erlang Nodes().?但是如何运行附加到正在运行的应用范围的控制台呢?
发布于 2016-12-02 15:09:11
我想你要找的是一个遥远的外壳。在Erlang中,我通常使用erl连接到远程节点:
erl -sname $short_name -setcookie $erlang_cookie -hidden -remsh $remote_node当然,将$short_name替换为您选择的名称,并将要连接到的节点($remote_node)的cookie值替换为$erlang_cookie。
在你的情况下,我会做这样的事情:
# Replace `node0` with the exact node name
erl -sname foobar -setcookie yourcookie -hidden -remsh node0
# Once in the shell run:
1> net_adm:ping(node1). % Replace with the node name of the other node如果得到pong,节点就可以通信。如果得到pang,则节点无法通信。您还可以尝试运行nodes()来获取连接节点的列表。
注意,除非必须连接,否则节点是不会连接的,因此,如果它们没有相互发送任何消息,您将得到一个空列表。对net_adm:ping/1的成功调用将导致nodes/0返回的列表中有一个节点。
有关详细信息,请参阅有关分布式Erlang的文档。
https://stackoverflow.com/questions/40909950
复制相似问题