it-swarm.com.de

Wie starte ich Mosquitto MQTT Broker beim Start in Ubuntu 16.04

Ich versuche, einen Mosquitto MQTT-Broker unter Ubuntu 16.04 auszuführen. Ich habe Anweisungen von 14.04, aber da 16.04 keinen Start mehr verwendet, kann ich nicht herausfinden, wie ich nach systemd konvertieren soll.

Hier sind die Befehle für 14.04:

description "Mosquitto MQTT broker"
start on net-device-up
respawn
exec /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

BEARBEITEN:

Dies ist, was ich bisher bekommen habe. Beim Neustart und Ausführen von systemctl status mosquitto.service zeige ich, dass die Mücke geladen, aber nicht aktiv ist:

[Unit]
Description=Mosquitto MQTT Broker

[Service]
WorkingDirectory=/usr/sbin/mosquitto
ExecStart=/etc/mosquitto/mosquitto.conf
Restart=always

[Install]
WantedBy=multi-user.target

EDIT 2:

Ran Sudo systemctl enable mosquitto.service. Jetzt lautet der Fehler-Exit-Code:

Process: 1720 ExecStart=/etc/mosquitto/mosquitto.conf (code=exited, status=200/CHDIR)
9
pekasus

Durch die Installation von Sudo apt install mosquitto unter 16.04 wird das Skript /etc/init.d/mosquitto hinzugefügt. systemd verwendet dieses Skript, um /run/systemd/generator.late/mosquitto.service zu generieren, und dies ist, was es sagt:

# Automatically generated by systemd-sysv-generator

[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/init.d/mosquitto
Description=LSB: mosquitto MQTT v3.1 message broker
Before=multi-user.target
Before=multi-user.target
Before=multi-user.target
Before=graphical.target
Before=shutdown.target
After=remote-fs.target
After=systemd-journald-dev-log.socket
Conflicts=shutdown.target

[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/etc/init.d/mosquitto start
ExecStop=/etc/init.d/mosquitto stop
ExecReload=/etc/init.d/mosquitto reload

Ein Blick in /etc/init.d/mosquitto sagt uns das

/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf wird bereits standardmäßig ausgeführt

Setzen Sie Ihre Konfiguration einfach in /etc/mosquitto/conf.d (referenziert von mosquitto.conf) und viel Spaß.


Als regulärer Systemdienst können Sie:

  • systemctl status mosquitto, um den aktuellen Status anzuzeigen
  • Sudo systemctl (start|stop) mosquitto, um den Status für die aktuelle Sitzung zu ändern
  • Sudo systemctl (enable|disable) mosquitto um das Startverhalten zu ändern (ohne den aktuellen Zustand zu beeinflussen)
8

Stelle sicher, dass du Mücken hast:

ps -aux | grep mosquitto

Und Sie haben dies in default.conf:

listener 1883
0
İsmail Yavuz

Die Zeilen ExecStart= und WorkingDirectory= Ihrer Gerätedatei sind völlig falsch. Versuchen Sie, eine Konfigurationsdatei mit der ausführbaren Datei (!) Als Arbeitsverzeichnis zu starten?

Wenn ich das richtig verstehe, wäre die richtige Unit-Datei:

[Unit]
Description=Mosquitto MQTT Broker
After=network.target

[Service]
ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Restart=always

[Install]
WantedBy=multi-user.target

Bitte versuchen Sie auch nicht, das Gerät zu starten und zu aktivieren. Lesen Sie meine ähnlichen Antworten dazu:

0
intelfx