我在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或更大的大小。