【问题管理】 -- 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入门到精通-ERROR: distribution port 25672 in use by rabbit
- Jenkins 安装启动提示“iJob for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.”
- Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details
- 解决Job for docker.service failed because the control process exited with error code. See "systemctl s
- Job for vsftpd.service failed because the control process exited with error code. See "systemctl sta
- Job for nginx.service failed because the control process exited with error code. See "systemctl stat
- Job for postfix.service failed because the control process exited with error code. See "systemctl st
- Job for nginx.service failed because the control process exited with error code. See “systemctl stat
- Job for docker.service failed because the control process exited with error code. See "systemctl sta...
- Job for mysqld.service failed because the control process exited with error code. See "systemctl sta
- Job for nginx.service failed because the control process exited with error code. See “systemctl stat
- Job for php-fpm.service failed because the control process exited with error code. See "systemctl st
- 启动Docker 出现Job for docker.service failed because the control process exited with error code. See "错误
- CentOS 7的docker启动失败问题:Job for docker.service failed because the control process exited with error
- CentOS7启动SSH服务报:Job for ssh.service failed because the control process exited with error code.......
- CentOS下Apache启动失败问题解决方案Job for httpd.service failed because the control process exited with error co
- Job for docker.service failed because the control process exited with error code. See
- Job for docker.service failed because the control process exited with error code. See
- centos中启动MySQL提示Job for mysqld.service failed because the control process exited with error code.
- 【Zabbix】Job for httpd.service failed because the control process exited with error code. See "sy解决方案
- docker启动报错: Job for docker.service failed because the control process exited with error code.