Erlang机器立即停止(分发名称冲突?)。由于OnFail设置为ignore,因此不会重新启动该服务

时间:2015-10-07 14:59:44

标签: erlang rabbitmq erlang-ports

我正在使用RabbitMQ。出于某种原因,RabbitMQ服务会在您启动后立即停止。我在事件日志中看到以下错误:

RabbitMQ: Erlang machine stopped instantly (distribution name conflict?). The service is not restarted as OnFail is set to ignore.

有人告诉我运行此命令:erl -sname rabbit

此命令生成以下输出:

{(no error logger present")i neirtr otre: r"mEirnraotri nign  ipnr odcoe_sbso o<
t0".,2{.b0a>d awrigt,h[ {eexrilt_p rviaml_uleo:a d{ebra,dcahregc,k[_{feirlle__pr
reismu_llto,a3d,e[r{,fcihleec,k"_efrill_e_prreismu_llto,a3d,e[r{.feirlle",}\,"{e
lriln_ep,r29i3m}_]l}o,a{dienri.te,rgle\t"_}b,o{olti,n1e,,[2{9f3i}l]e},,"{iinniit
t.,egrelt"_}b,o{olti,n1e,,[78{9f}i]l}e,,{\i"niinti,tg.eetr_lb\o"o}t,,{2l,i[n{ef,
i7l8e9,}"]i}n,i{ti.neirtl,"g}e,t{_lbionoet,,7762},][}{,f{iilnei,t\,"dion_ibto.oe
tr,l3\,"[}{,f{illien,e",i77n6i}t].}e,r{li"n}i,t{,ldion_eb,o74o3t},]3},][}{}f
ile,\"init.erl\"},{line,743}]}]}\n"

我不确定如何解释此输出。我想知道这个错误是针对RabbitMQ或erlang的。

我不知道如何处理。请建议。

10 个答案:

答案 0 :(得分:4)

唯一对我有用的是清除目录 C:\ Users \ xxxxx \ AppData \ Roaming \ RabbitMQ

(参见https://groups.google.com/forum/#!topic/rabbitmq-users/138RHzzsORU

答案 1 :(得分:3)

我刚刚遇到这个问题,在新的Windows服务器上将RabbitMq设置为服务。我能想到的唯一让我失望的是在安装RabbitMq服务之后重命名新的Windows框,但是在第一次测试之前。

首先,我注意到它作为一个应用程序运行良好。我通过使用manual install instructions

中的命令再次安装服务解决了这个问题
rabbitmq-service install

假设您已为RabbitMq sbin目录包含路径变量。

答案 2 :(得分:1)

在我的场景中,存在两个具有不同版本的C:\ Program Files下的Erlang目录,我卸载了其中一个版本,还从Windows服务列表中卸载了RabbitMQ服务-重新启动系统。

再次运行RabbitMQ设置-RabbitMQ服务已成功设置。

答案 3 :(得分:0)

我发现名字与env变量冲突,我使用多年 - 意味着,这不是以前版本的问题。 我有&#34; Logs&#34;应用程序将写入该目录,通常使用自己的子目录。 RMQ使用相同的变量名称,表示纯文件名。 所以使用:&#34; C:\ Users \ rabbit \ AppData \ Roaming \ RabbitMQ \ log \ log&#34;让它为我工作 - 这是在兔子的用户私人环境中。因此兔子现在看不到全球环境。 UFF。看起来,这实际上是一个文件名,在我再次更改为&#34; rabbit@c4711-node.log"之后,它就像早期版本一样。服务现在开始给我 - 但这真的很乱,我现在不相信它; - )

答案 4 :(得分:0)

从我的角度来看,应该在自己的帐户下运行这样的服务。如果该服务已经存在,请创建一个本地用户帐户 - 我使用了“兔子”并给它一个密码。我创建的帐户,从我那里得到了管理员 - 但我目前只是不知道,这是必要的。至少它不应该 - 稍后会看到。如果您有帐户/凭据,请转到服务管理器,然后单击该服务的属性。在第二个选项卡(“登录”)上,选中“此帐户”并输入用户名和密码。如果您拥有该服务的帐户,则应该能够与用户一起登录。 Run service with specific account 然后,您可以使用用户范围指定环境变量。 为此,请使用您创建的用户登录。转到ControlPanel / System并单击“高级”: See bottom: Environment variables

在Environment UI中,输入用户特定的变量 在顶部面板中: Users variables at top panel

注意:这不是我的兔子用户,因为我目前无法登录。我输入的变量 - 不保证,它是正确的 - 如下:

RABBITMQ_BASE=C:\Users\rabbit\AppData\Roaming\RabbitMQ
RABBITMQ_CONFIG_FILE=C:\Users\rabbit\AppData\Roaming\RabbitMQ\rabbitmq
RABBITMQ_LOGS=C:\Users\rabbit\AppData\Roaming\RabbitMQ\log
RABBITMQ_LOG_BASE=C:\Users\rabbit\AppData\Roaming\RabbitMQ\log
RABBITMQ_NODE_IP_ADDRESS=192.168.26.3

这对我有用。 我最后一次安装它 - 几年前 - 最好理解 - 这一次,对不起,我不... 但它使它成功。

答案 5 :(得分:0)

在Windows Server 2016上通过Chocolatey安装RabbitMQ 3.7.17时遇到了相同的问题。

尝试了大多数建议的解决方案后,对我有用的是:

rabbitmq-service remove
rabbitmq-service install
rabbitmq-service start

PS:如果未为RabbitMQ配置PATH,则这是运行以下命令的文件夹:C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.17\sbin(如果您的版本也是3.7.17)。

答案 6 :(得分:0)

对于任何其他正在查找此错误的人:仔细检查您的配置文件和SSL文件。当我用ca.pem指定ssl_options.cacertfile时遇到了这个问题,但是该文件在目录中被错误地键入为ca-pem。不幸的是,RabbitMQ不够聪明,无法捕获丢失的文件,并且没有日志就进行了转储。

答案 7 :(得分:0)

根据Windows上的RabbitMQ安装指南在此处

作为服务运行时的故障排除

在RabbitMQ运行时Erlang VM崩溃的情况下 服务,而不是将故障转储写入当前目录 (对于服务没有意义)将其写入 RabbitMQ服务器的基本目录中的erl_crash.dump文件(设置 由RABBITMQ_BASE环境变量设置,默认为 %APPDATA%\%RABBITMQ_SERVICENAME%-通常为%APPDATA%\ RabbitMQ 否则)。

基本上,这意味着添加一个名为RABBITMQ_BASE的环境变量,其值为%APPDATA%\ RabbitMQ

这解决了我的问题。

答案 8 :(得分:0)

我遇到了这个问题,我能解决的唯一方法是卸载 RabbitMQ,卸载 Erlang,重新启动服务器并安装一个干净的 Erlang 和一个干净的 RabbitMQ。 做完这一切,我终于可以安装并启动 RabbitMQ 实例作为 Windows 服务了。

尝试了这篇文章中的所有解决方案,但没有任何效果。

幸运的是它在我们的开发服务器中,所以损失是可以接受的。

这种方法的缺点是您会丢失所有配置(所有用户、虚拟主机等)。 一切都过去了,您必须从头开始重新配置 RabbitMQ 实例。

答案 9 :(得分:0)

从 2021 年开始入住:

这些都不适合我,问题实际上是我在 WSL Ubuntu 发行版中运行了另一个 RabbitMQ 实例。