HiveMQ service fails to start on Ubuntu server boot

 Problem

The HiveMQ service fails to start on boot after following the instructions provided in the HiveMQ Documentation.

 Solution

  1. We suggest using Systemd service to run HiveMQ as a service.

  2. Copy the HiveMQ service file to the systemd directory:

    sudo cp /opt/hivemq/bin/init-script/hivemq.service /etc/systemd/system/hivemq.service
  3. Edit the HiveMQ service file to run as root instead of the default hivemq user:

    sudo nano /etc/systemd/system/hivemq.service

    Update Service Group and User as “root”.

  4. Reload systemd to apply the changes made to the HiveMQ service file. Use following command to do that.

    sudo systemctl daemon-reload
  5. Enable HiveMQ to start on boot. Following command configures systemd to start the HiveMQ service automatically on boot.

  6. Manually start the HiveMQ service:

  7. Check the status of the HiveMQ service:

    This command displays the status of the HiveMQ service, including whether it is running or not.

  8. Debug the HiveMQ startup process with systemd:

  9. Check if HiveMQ is listening to the default port for MQTT:

  10. In case firewalls such as UFW are enabled, Please try disabling these and retry to run the hivemq service. Or allow mqtt and control centre ports configured in HiveMQ’s config.xml to become accessible. Following is the command to disable UFW

  11. Even after doing all of the above still service fails to restart then this could be because of Ubuntu AppArmor or SELinux configurations that may interfere with the service. Please try disabling them and retry if the service starts without issue. Following are the commands to stop and disable the AppArmor service.

  12. In case the issue persists, please reach out to support via the Support portal for further help.