在Debian Stretch上安装/启动RabbitMQ失败

4

跟随一个

sudo apt-get install rabbitmq-server

当服务尝试启动时(使用systemctl start),我遇到了错误:

● 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 2017-07-26 15:59:41 IDT; 4min 28s ago
  Process: 17895 ExecStartPost=/usr/lib/rabbitmq/bin/rabbitmq-server-wait (code=exited, status=70)
  Process: 17894 ExecStart=/usr/sbin/rabbitmq-server (code=exited, status=1/FAILURE)
 Main PID: 17894 (code=exited, status=1/FAILURE)

这在systemctl status中。而在journalctl -xe中:
-- Unit rabbitmq-server.service has begun starting up.
Jul 26 15:59:37 myhost rabbitmq[17895]: Waiting for rabbit@myhost ...
Jul 26 15:59:37 myhost rabbitmq[17895]: pid is 17903 ...
Jul 26 15:59:40 myhost systemd[1]: rabbitmq-server.service: Main process exited, code=exited, status=1/FAILURE
Jul 26 15:59:41 myhost rabbitmq[17895]: Error: process_not_running
Jul 26 15:59:41 myhost systemd[1]: rabbitmq-server.service: Control process exited, code=exited status=70
Jul 26 15:59:41 myhost systemd[1]: Failed to start RabbitMQ Messaging Server.
-- Subject: Unit rabbitmq-server.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- Unit rabbitmq-server.service has failed.
-- 
-- The result is failed.
Jul 26 15:59:41 myhost systemd[1]: rabbitmq-server.service: Unit entered failed state.
Jul 26 15:59:41 myhost systemd[1]: rabbitmq-server.service: Failed with result 'exit-code'.

你好!能否请您发布位于“/var/log/rabbitmq”目录下的RabbitMQ日志文件? - Jean-Sébastien Pédron
@Jean-SébastienPédron 抱歉,我已经解决了问题,现在它们不会显示任何错误。我之前不知道这些内容,所以这个评论应该对其他在这里寻找答案的人有帮助。 - kabanus
好的,很棒你解决了它 :) - Jean-Sébastien Pédron
1个回答

9

好的,这个问题有点难:

  1. 确保您的主机名正确。您可以运行

    sudo hostname --file /etc/hostname

    来确认。如果不正确,请通过更改/etc/hostname进行更改。a.b.c.d应该就足够了。

  2. 如果您在公司防火墙后面,rabbitmq将无法连接到所有接口。更改/etc/rabbitmq/rabbitmq-env.conf,将NODE=rabbit@localhost设置为开发环境足够了。

现在您可以运行sudo apt-get install --fix-broken来完成安装(会抱怨要安装更多的东西)。使用sudo rabbitmqctl status来确保节点正常运行 - 如果没有它会清楚地指出。


1
太棒了,经过数小时的搜索,这对我有用了。为了进一步澄清给到来的其他人,hostname显示主机名,但调用hostname --file /etc/hostname将把主机名设置为--file参数中的任何内容。 - qotsa42
请注意,/etc/hostname 是许多 Linux 发行版中通常保存主机名的文件。如果有人认为它是不同的文件,请不要用此名称替换编辑它,而是将其与相关的 Linux 发行版一起添加。 - kabanus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接