在 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.lograbbit@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”开头的主要内容,如果未能解决你的问题,请参考以下文章

RabbitMQ 在Ubuntu18.04上的安装

虚拟机Ubuntu 18.04安装RabbitMQ 3.7.9

Ubuntu Server 18.04 与 RabbitMQ 3.6.x

Ubuntu Server 18.04 与 RabbitMQ 3.6.x

RabbitMQ不是以Ubuntu 18.04上的消息“init终止于do_boot,noproc”开头的

RabbitMQ在Ubuntu上的环境搭建