首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有非默认EPMD端口的Erlang节点不再响应ping

具有非默认EPMD端口的Erlang节点不再响应ping
EN

Stack Overflow用户
提问于 2021-02-02 22:52:38
回答 1查看 63关注 0票数 2

如果我启动我的单节点应用程序,那么在默认的EPMD端口4369上ping成功。如果我现在将ERL_EPMD_PORT: 44370的端口更改为不同的端口,我将无法再连接到它。EPMD正在监听44370经过一些调试后,我发现下面的ping代码由于pang处理而停止了我的应用程序。我这里不包括pong。

Ping代码:

代码语言:javascript
复制
net_adm:ping(TargetNode) --> pang

注意:我知道集群需要使用相同的EPMD端口才能在集群模式下工作。但我并不认为Node已经准备好连接到其他节点了。它已经在pinging自身时停止了。另一方面,如果使用默认端口,则一切正常。

似乎net_adm:ping(Host)没有使用环境变量ERL_EPMD_PORT来执行pinging操作,我说的对吗?或者这里的问题出在哪里?

EN

回答 1

Stack Overflow用户

发布于 2021-02-02 23:36:01

代码语言:javascript
复制
 $> epmd &     
[1] 10257
 $> epmd -names
epmd: up and running on port 4369 with data:
 $> fg
[1]  + 10257 running    epmd
^C
 $> epmd -port 44370 &    
[1] 10473
 $> epmd -names       
epmd: Cannot connect to local epmd
 $> export ERL_EPMD_PORT=44370
 $> epmd -names               
epmd: up and running on port 44370 with data:
 $> erl -sname client1@localhost                  
Erlang/OTP 23 [erts-11.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1]

Eshell V11.1  (abort with ^G)
(client1@localhost)1> net_adm:ping(node()).
pong
(client1@localhost)2>     

我将验证本地epmd确实在该端口上侦听(在linux中,您可以使用ssss -punta | grep 44370),并且TargetNode已正确构建。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66012128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档