在 Ubuntu 18.04 上,RabbitMQ 未以消息“init terminating in do_boot,noproc”开头
Posted
技术标签:
【中文标题】在 Ubuntu 18.04 上,RabbitMQ 未以消息“init terminating in do_boot,noproc”开头【英文标题】:RabbitMQ not starting with message "init terminating in do_boot, noproc" on Ubuntu 18.04 【发布时间】:2019-01-28 09:13:18 【问题描述】:我似乎无法再为我的 Ubuntu 18.04 启动或安装我的 RabbitMQ 服务器了。我试图删除并再次安装它,但由于配置失败,它无法完成安装。当我尝试运行sudo apt-get install --fix-broken
。这是它失败的结果:
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 61 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up rabbitmq-server (3.6.10-1) ...
Job for rabbitmq-server.service failed because the control process exited with error code.
See "systemctl status rabbitmq-server.service" and "journalctl -xe" for details.
invoke-rc.d: initscript rabbitmq-server, action "start" failed.
● rabbitmq-server.service - RabbitMQ Messaging Server
Loaded: loaded (/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2018-08-22 09:16:51 EEST; 5ms ago
Process: 20997 ExecStartPost=/usr/lib/rabbitmq/bin/rabbitmq-server-wait (code=exited, status=70)
Process: 20996 ExecStart=/usr/sbin/rabbitmq-server (code=exited, status=0/SUCCESS)
Main PID: 20996 (code=exited, status=0/SUCCESS)
elo 22 09:16:48 ubuntu-dev systemd[1]: Starting RabbitMQ Messaging Server...
elo 22 09:16:49 ubuntu-dev rabbitmq[20997]: Waiting for 'rabbit@ubuntu-dev'
elo 22 09:16:49 ubuntu-dev rabbitmq[20997]: pid is 21001
elo 22 09:16:51 ubuntu-dev rabbitmq[20997]: Error: process_not_running
elo 22 09:16:51 ubuntu-dev systemd[1]: rabbitmq-server.service: Control process exited, code=exited status=70
elo 22 09:16:51 ubuntu-dev systemd[1]: rabbitmq-server.service: Failed with result 'exit-code'.
elo 22 09:16:51 ubuntu-dev systemd[1]: Failed to start RabbitMQ Messaging Server.
dpkg: error processing package rabbitmq-server (--configure):
installed rabbitmq-server package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
rabbitmq-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
然后在检查日志文件时,它们也没有提供更多信息。这里是startup_err日志文件内容:
init terminating in do_boot (noproc)
Crash dump is being written to: erl_crash.dump...done'
这里是 startup_log 文件内容:
BOOT FAILED
===========
Error description:
noproc
Log files (may contain more information):
/var/log/rabbitmq/rabbit.log
/var/log/rabbitmq/rabbit-sasl.log
Stack trace:
[gen,do_for_proc,2,[file,"gen.erl",line,228],
gen_event,rpc,2,[file,"gen_event.erl",line,239],
rabbit,ensure_working_log_handlers,0,
[file,"src/rabbit.erl",line,842],
rabbit,'-boot/0-fun-0-',0,[file,"src/rabbit.erl",line,281],
rabbit,start_it,1,[file,"src/rabbit.erl",line,417],
init,start_em,1,[],
init,do_boot,3,[]]
=INFO REPORT==== 22-Aug-2018::09:16:49.691453 ===
Error description:
noproc
Log files (may contain more information):
/var/log/rabbitmq/rabbit.log
/var/log/rabbitmq/rabbit-sasl.log
Stack trace:
[gen,do_for_proc,2,[file,"gen.erl",line,228],
gen_event,rpc,2,[file,"gen_event.erl",line,239],
rabbit,ensure_working_log_handlers,0,
[file,"src/rabbit.erl",line,842],
rabbit,'-boot/0-fun-0-',0,[file,"src/rabbit.erl",line,281],
rabbit,start_it,1,[file,"src/rabbit.erl",line,417],
init,start_em,1,[],
init,do_boot,3,[]]
"init terminating in do_boot",noproc
它声称用于记录的其他日志文件是空的。例如日志文件rabbit@ubuntu-dev.log
和rabbit@ubuntu-dev-sasl.log
。
我还发现了this 的帖子,它解释了在 /etc/hostname 文件中检查您的主机名,但我检查了,它是正确的。
kazhu@ubuntu-dev:/var/log/rabbitmq$ cat /etc/hostname
ubuntu-dev
我还查看了 RabbitMQ 故障排除指南,他们说要检查日志文件夹权限,这对我来说是正确的:
kazhu@ubuntu-dev:/var/log/rabbitmq$ ll
total 48
drwxr-xr-x 2 rabbitmq rabbitmq 4096 kesä 14 06:16 ./
drwxrwxr-x 16 root syslog 4096 elo 22 00:09 ../
-rw-r--r-- 1 rabbitmq rabbitmq 0 kesä 14 06:16 'rabbit@ubuntu-dev.log'
-rw-r--r-- 1 rabbitmq rabbitmq 5247 kesä 14 06:16 'rabbit@ubuntu-dev.log.1'
-rw-r--r-- 1 rabbitmq rabbitmq 954 touko 28 08:36 'rabbit@ubuntu-dev.log.2.gz'
-rw-r--r-- 1 rabbitmq rabbitmq 768 touko 21 07:11 'rabbit@ubuntu-dev.log.3.gz'
-rw-r--r-- 1 rabbitmq rabbitmq 708 touko 16 00:12 'rabbit@ubuntu-dev.log.4.gz'
-rw-r--r-- 1 rabbitmq rabbitmq 955 touko 7 07:26 'rabbit@ubuntu-dev.log.5.gz'
-rw-r--r-- 1 rabbitmq rabbitmq 4264 huhti 22 00:07 'rabbit@ubuntu-dev.log.6.gz'
-rw-r--r-- 1 rabbitmq rabbitmq 0 huhti 17 15:58 'rabbit@ubuntu-dev-sasl.log'
-rw-r--r-- 1 rabbitmq rabbitmq 95 elo 22 09:16 startup_err
-rw-r--r-- 1 rabbitmq rabbitmq 1212 elo 22 09:16 startup_log
Guide 还指出 perl chrash 转储文件包含问题的详细信息,并且需要 Erlang 专业知识,而我没有。所以决定upload文件到我的Dropbox给你看。
有人可以帮我解决这个问题吗?我自己尝试了一段时间但放弃了,因为无法弄清楚问题似乎是什么:/
【问题讨论】:
【参考方案1】:我在同事的帮助下解决了这个问题。我已经分别从外部 apt 源安装了最新的 erlang 和 rabbitmq。现在,当我删除并清除了与 rabbitmq 和 erlang 相关的所有内容时,也删除了添加的 apt 源。然后我只运行了sudo apt install rabbitmq-server
,由于依赖关系,它也想安装 erlang 包。并且它已安装,之后一切正常。
如果其他人和我有同样的问题,想分享这个解决方案。
2020 年 12 月 9 日更新:
有人问我如何删除 RabbitMQ 和 Erlang。我不完全记得了,但我想我是按照这个指南操作的:https://www.rabbitmq.com/install-debian.html。
重点是从添加的存储库中删除已安装的 RabbitMQ 和 Erlang 包及其配置
sudo apt purge rabbitmq-server erlang
您可能需要搜索其余的 erlang 包
apt list | grep erlang
然后您需要删除添加的 apt 存储库。通常在 Ubuntu 中添加的存储库位于 /etc/apt/sources.list.d/
文件夹下。寻找像 rabbitmq 和 erlang 这样的文件名。确保您没有删除任何其他文件!
在运行sudo apt update
之后,apt 应该删除已删除的 apt 存储库。然后只需运行sudo apt install rabbitmq-server
就可以解决问题并将Erlang 包安装为依赖项。当然,以这种方式安装会得到比使用添加的存储库更旧的版本。
【讨论】:
能分享一下解决问题的步骤吗? 我更新了我记得的内容。我已经很久没有解决这个问题了。希望这会有所帮助,祝你好运! 非常感谢,兄弟@Kazooie,rabbitMQ 自己的站点使一切都变得非常简单,只需一个 bash 脚本。而已。抱歉,我坚持让您在 2 年后再次编辑并写下上述答案。再次感谢。以上是关于在 Ubuntu 18.04 上,RabbitMQ 未以消息“init terminating in do_boot,noproc”开头的主要内容,如果未能解决你的问题,请参考以下文章
虚拟机Ubuntu 18.04安装RabbitMQ 3.7.9
Ubuntu Server 18.04 与 RabbitMQ 3.6.x
Ubuntu Server 18.04 与 RabbitMQ 3.6.x