我曾经在一个盒子上运行两个ejabberd服务器和RabbitMQ服务器。然而,一些东西崩溃了,epmd显示了以下内容:
$ ./epmd -names
epmd: up and running on port 4369 with data:
name ejabberdjabberpl at port 48654
name ejabberd at port 55243
name rabbit_crypto at port 25673
name rabbit at port 38794
然而,只有ejabberdjabberpl正在运行-其他的都是死的,并且它们没有在端口上侦听。现在,当我试图启动crased RabbitMQ服务器或其他ejabberd服务器时,它们都表示节点上已经存在ejabberd或rabbit或者rabbit_crypto。
我试图删除带有-stop的,但它不起作用:
$ ./epmd -stop rabbit
epmd: local epmd responded with <>
你怎么知道已经没有兔子和精液了?基于erlang的应用程序的典型问题是,它的脚本使用了一种名为"cookie"的东西来与服务通信。如果有人不小心删除了这个秘密cookie,脚本就会停止工作。
通过检查ps aux | grep beam
来确保兔子和射精停止
如果您确定没有Erlang集群代码实际运行,那么当这种情况发生时,您应该实际终止/重新启动epmd。它有时会被旧数据卡住,使您无法重新启动服务。