AI智能
改变未来

【问题管理】 — RabbitMQ启动时报错:Job for rabbitmq-server.service failed because the control process exited with error code. See "systemctl status rabbl -xe" for details.


1.问题背景

基于docker容器yum install安装的RabbitMQ,这里需要修改RabbitMQ下的相关配置文件,我这里关闭了RabbitMQ。

修改之后重启RabbitMQ,发现Restart不了了,而且还直接抛出了异常~~尴尬!

异常信息:

Job for rabbitmq-server.service failed because the control process exited with error code. See \"systemctl status rabbl -xe\" for details.

于是在网上查询了一下这个报错的解决方法,Nice,还真找到了!

1.1.解决方法

①使用命令journalctl -xe,定位到详细的报错日志信息;

journalctl -xe

通过这个执行到命令行后,会打印出非常多的问题信息,让我们继续往下定位到ERROR处:

好的,问题大致清楚了,是启动时的端口被占用了,导致的起不来!

②执行rabbitmq-server -detached,重启编译并运行RabbitMQ服务,会打印出更标准的日志信息:

rabbitmq-server –detached

这里可以看到基本就是云服务器上的一个process进程占用了port 25672端口,导致MQ不能使用这个端口进行通讯,启动不来!

③通过netstat -lnp | grep 25672命令,找到罪魁祸首,是哪个进程搞得鬼!

netstat -lnp | grep 端口号

可以看到这里是docker上面的一个进程占用了25672端口,因为我的RabbitMQ是运行在docker容器中的,这里我先关闭了RabbitMQ Service,但是docker本身并没有关闭,那么同docker一起运行的还有erlang安装环境(RabbitMQ本身依赖),那么可能就占用了25672端口,所以我就一起把dokcer也重新启动了,相当于关闭了erlang运行环境等等的东西。

在次启动RabbitMQ服务,正常启动运行!问题解决!

1.2.问题总结及相关类似问题

这个问题简单说就是关闭RabbitMQ太随意导致的,一般我们关闭容器内的RabbitMQ可以直接关闭dokcer容器(鉴于容器内的服务只有一个RabbitMQ的情况下),或者重启RabbitMQ时,需要看下有没有其它依赖。

问题关联搜索了两篇比较相似的博文:

RabbitMQ安装时遇到的若干问题

RabbitMq入门到精通-ERROR: distribution port 25672 in use by rabbit

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 【问题管理】 — RabbitMQ启动时报错:Job for rabbitmq-server.service failed because the control process exited with error code. See "systemctl status rabbl -xe" for details.