我曾经在一个盒子上运行两个ejabberd服务器和RabbitMQ服务器。但是,有些东西崩溃了,epmd显示了以下内容:
$./epmd-命名epmd:启动并在端口4369上运行,数据:名称ejabberdjabberpl在端口48654名称ejabberd在端口55243名称rabbit_crypto在端口25673名称兔子在端口38794
然而,只有ejabberdjabberpl正在运行-其他的已经死了,他们没有监听端口。现在,当我试图启动崩溃的RabbitMQ服务器或其他ejabberd服务器时-他们都说ejabberd或兔子或rabbit_crypto已经存在于节点上。
我试图删除与停止,但它不起作用:
$./epmd-停止兔子epmd:本地epmd响应
你怎么知道不再有兔子和ejabberd了?基于erlang的应用程序的典型问题是它的脚本使用一种叫做“cookie”的东西与服务进行通信。如果有人不小心删除了这个秘密cookie,脚本就会停止工作。
尝试通过检查ps aux|grep光束
来确保兔子和ejabberd停止
如果您确定没有Erlang集群代码实际运行,当这种情况发生时,您实际上应该杀死/重新启动epmd。它有时会卡住旧数据,阻止您重新启动服务。