我在我的 Windows (2012) 服务器上停止了 RabbitMQ 一段时间。但是,当我尝试重新启动它时,它会在大约 30 秒内再次关闭。
Windows 事件日志包含以下消息:
RabbitMQ:Erlang 机器自动停止。由于 OnFail 设置为忽略,服务不会重新启动。
RabbitMQ 错误日志有以下消息:
=ERROR REPORT==== 12-Aug-2013::13:16:59 ===
** Generic server rabbit_web_dispatch_registry terminating
** Last message in was {add,rabbit_mgmt,
[{port,15672}],
#Fun<rabbit_web_dispatch.1.31447083>,
#Fun<rabbit_mgmt_app.2.5043001>,
{[],"RabbitMQ Management"}}
** When Server state == undefined
** Reason for termination ==
** {could_not_start_listener,[{port,15672}],eaddrinuse}
但是,我知道机器上运行的东西很少,没有其他东西应该尝试绑定到该端口。
这可能是什么原因造成的?
如果您重新安装 RabbitMQ 并在将其作为 Windows 服务运行时遇到问题,解决方法可能如下:
在 cmd.exe 中,从 rabbit sbin 文件夹运行:
它在 Windows 7 上对我有用。
该命令
netstat -ab
可用于查看哪些程序正在使用每个端口。(请注意,这些参数仅适用于 Windows。类似的 linux 命令是netstat -lp
. 两个平台都要求用户是管理员才能执行这些命令。)http://localhost:15672/
在这种情况下,我在RabbitMQ 管理控制台(关闭浏览器选项卡后,我能够启动 RabbitMQ。停止 RabbitMQ 服务,进入 C:\RabbitMQ\rabbit@XXXXXX-mnesia\ 文件夹。如果recovery.dets文件为0kb,备份并删除,然后重启RabbitMQ。这应该重新创建一个大小为 6kb 或更大的新recovery.dets 。