簡體   English   中英

Erlang 具有非默認 EPMD 端口的節點不再響應 ping

[英]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 中,您可以使用ssss -punta | grep 44370 )並且TargetNode已正確構建。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM