无法在Windows上重新启动RabbitMQ服务

我在Windows(2012)服务器上暂停了RabbitMQ。 但是,当我尝试重新启动它时,它会在约30秒内再次closures。

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} 

但是,我知道机器上运行的很less,没有别的东西应该试图绑定到这个端口

什么可能导致这个?

如果您重新安装RabbitMQ并将其作为Windows服务运行,解决方法可能如下:

在cmd.exe中,从rabbit sbin文件夹运行:

 rabbitmq-service.bat remove rabbitmq-service.bat install net start rabbitmq 

它在Windows 7上为我工作。

命令netstat -ab可以用来查看哪个程序正在使用每个端口。 (请注意,这些参数仅适用于Windows,类似的linux命令将是netstat -lp ,这两个平台都要求用户成为执行这些命令的pipe理员。)

在这种情况下,我将一个Google Chrome窗口打开到RabbitMQpipe理控制台( http://localhost:15672/ ),Chrome以某种方式保持该端口的使用。 closures浏览器标签后,我可以启动RabbitMQ。

停止RabbitMQ服务,进入C:\ RabbitMQ \ rabbit @ XXXXXX-mnesia \文件夹。 如果文件recovery.dets是0kb,请备份并删除它,然后重新启动RabbitMQ。 这应该重新创build一个新的recovery.dets是6kb或更大的大小。