Я на короткое время остановил RabbitMQ на своем сервере Windows (2012). Однако, когда я попытался перезапустить его, он снова выключился примерно через 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 запускаем из папки sbin кролика:
rabbitmq-service.bat remove
rabbitmq-service.bat install
net start rabbitmq
У меня это сработало на Windows 7.
Команда netstat -ab
можно использовать, чтобы увидеть, какая программа использует каждый порт. (Обратите внимание, что эти аргументы предназначены только для Windows. Аналогичная команда linux будет netstat -lp
. Обе платформы требуют, чтобы пользователь был администратором для выполнения этих команд.)
В этом случае я оставил окно Google Chrome открытым для консоли управления RabbitMQ (http://localhost:15672/
), и Chrome каким-то образом использовал порт. После того, как я закрыл вкладку браузера, я смог запустить RabbitMQ.
Остановите RabbitMQ Services, попал в папку C: \ RabbitMQ \ rabbit @ XXXXXX-mnesia \. Если файл recovery.dets составляет 0 КБ, сделайте резервную копию и удалите его, затем перезапустите RabbitMQ. Это должно воссоздать новый recovery.dets размером 6 КБ или более.