[英]Erlang Node with non-Default EPMD port doesn't respond to ping anymore
如果我啟動我的單節點應用程序,ping 會在默認的 EPMD 端口 4369 上成功。如果我現在將帶有ERL_EPMD_PORT: 44370
的端口更改為另一個端口,我將無法再連接到它。 EPMD 正在監聽 44370。經過一些調試后,我發現以下 ping 代碼由於pang
處理而暫停了我的應用程序。 我在這里除了乒乓球。
平碼:
net_adm:ping(TargetNode) --> pang
注意:我知道集群需要使用相同的 EPMD 端口才能在集群模式下工作。 但到目前為止,節點還沒有准備好連接到其他節點。 它已經停止 ping 自身。 另一方面,如果使用默認端口,一切正常。
似乎net_adm:ping(Host)
不使用環境變量ERL_EPMD_PORT
進行 ping 操作,我說得對嗎? 或者這里的問題可能出在哪里?
$> 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 中,您可以使用ss
: ss -punta | grep 44370
)並且TargetNode
已正確構建。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.