Problem
Nach einigen Tagen Abwesenheit wurde ich leider mit einigen Problemen an meinem Raspberry- Smarthomeserver konfrontiert.
Unter anderem war der Mosquitto MQTT- Server, der Meldungen der verschiedenen iot- Devices entgegennehmen und verarbeiten soll, nicht verfügbar.
Analyse
Nach Analyse der Prozessübersicht mit
ps -A | grep mosq
wurde leider keine Ausgabe dargestellt, d.h. der prozess war offenschtlich nicht gestartet.
Das manuelle Anstarten mit
sudo mosquitto
führte dann allerdings zum Erfolg. Der MQTT- Server lief und nahm auch alle Meldungen entgegen bzw. verarbeitete diese. Nur der Dienst zum Mosquitto verursachte Probleme.
Nach Beenden des manuell gestarteten Prozesses erfolgte noch ein Versuch mit
sudo systemctl start mosquitto.service
den Dienst dann zu starten. Die anschließende Abfrage mit
sudo systemctl status mosquitto.service
lieferte zunächst eine vielversprechende Antwort, dass der Dienst erfolgreich gestartet wurde.
Leider wohl doch nicht ganz erfolgreich, in der Prozessübersicht immer noch kein Eintrag für mosquitto, auch die MQTT- Meldungsverarbeitung funktionierte nicht.
Ursache
Nach einiger Fehlersuche wurde dann das Problem gelöst. Ursache war eine offensichtlich korrupte mosquitto.db, die vom mosquitto-Dienst für die Zwischenspeicherung von Meldungen verwendet wird.
Lösung
Dieses Problem lässt sich einfach beheben, in dem im Verzeichnis /var/lib/mosquitto die entsprechende Datei gelöscht wird mittels:
sudo rm mosquitto.db
Wenn anschließend dann mit
sudo systemctl restart mosquitto.service
erneut gestartet wird, funktioniert mosquitto einwandfrei. Auch nach einem reboot wird der Dienst wieder automatisch angestartet.
Kommentare