Erlang epmd 问题 - RabbitMQ 和 Ejabberd 在同一主机上

Posted

技术标签:

【中文标题】Erlang epmd 问题 - RabbitMQ 和 Ejabberd 在同一主机上【英文标题】:Erlang epmd issues - RabbitMQ and Ejabberd on same host 【发布时间】:2014-12-05 14:26:39 【问题描述】:

我曾经在一个机器上运行两个 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 服务器时 - 他们都说 ejabberdrabbitrabbit_crypto 已经存在于节点。

我试图删除 with -stop 但它不起作用:

$ ./epmd -stop rabbit epmd: local epmd responded with <>

【问题讨论】:

【参考方案1】:

如果您确定实际上没有 Erlang 集群代码在运行,那么当这种情况发生时,您应该真正杀死/重新启动 epmd。它有时会被旧数据卡住,从而阻止您重新启动服务。

【讨论】:

我不想杀死在同一个 epmd 上运行的其他节点。【参考方案2】:

你怎么知道已经没有兔子和 ejabberd 了? 基于 erlang 的应用程序的典型问题是它的脚本使用称为“cookie”的东西与服务通信。如果有人不小心删除了这个秘密 cookie,脚本就会停止工作。

通过检查ps aux | grep beam来确保rabbit和ejabberd停止

【讨论】:

我已经检查(使用 netstat)是否有应用程序在这些端口上侦听。之前所有的梁都被移除了。

以上是关于Erlang epmd 问题 - RabbitMQ 和 Ejabberd 在同一主机上的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法阻止 Erlang 服务器自动启动 epmd?

Windows 10 上的 RabbitMQ - 无法连接到 epmd:地址(无法连接到主机/端口)

主机 myhost 的 epmd 错误:Windows 10 上的地址(无法连接到主机/端口)

Erlang EPMD 使用非默认 EPMD 端口连接到其他主机

在没有 epmd 的情况下启动 erlang VM

Erlang epmd官方文档中文翻译