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

kab*_*nus 4 debian rabbitmq

sudo apt-get install rabbitmq-server
Run Code Online (Sandbox Code Playgroud)

当服务尝试启动时(也在使用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)
Run Code Online (Sandbox Code Playgroud)

那在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'.
Run Code Online (Sandbox Code Playgroud)

kab*_*nus 7

OK, this was a rough one:

  1. Make sure your hostname is correct. you can run

    sudo hostname --file /etc/hostname

    to make sure. If it isn't change it by changing /etc/hostname. a.b.c.d should be enough.

  2. If you're behind a company firewall rabbitmq will fail to connect to all the interfaces. Change /etc/rabbitmq/rabbitmq-env.conf, setting NODE=rabbit@localhost. This is enough for development.

现在你可以sudo apt-get install --fix-broken完成安装(会抱怨它被安排了更多的东西)。用于sudo rabbitmqctl status确保节点正常运行 - 如果没有,它会清楚地说明。