Docker + jMQTT : Mosquitto ne démarre pas

Bonjour à tous,

Je suis entrain de migrer mon installation VM vers une installation docker (sous un NAS Unraid) et je rencontre un problème avec jMQTT.

Mosquitto est bien installé mais le plugin ne semble pas capable de le démarrer. J’obtiens le message suivant dans les logs :

[2021-08-12 18:33:33][DEBUG] : daemon starts, pid is 15609
[2021-08-12 18:33:33][DEBUG] : status cmd id: 205447, topic: jeedom/status
[2021-08-12 18:33:33][INFO] : Connect to mosquitto: Host=localhost, Port=1883, Id=jeedom
[2021-08-12 18:33:33][INFO] : Equipment Broker MQQT: subscribes to "jeedom/#" with Qos=1
[2021-08-12 18:33:33][WARNING] : exception thrown by MQTT client: The client is not currently connected.
[2021-08-12 18:33:33][INFO] : relance le démon dans 15s

J’ai cherché le process supposé du daemon par son numero PID et ill n’existe pas.
J’ai essayé de lancer manuellement mosquito en ligne de commande et à ce moment la connexion se fait bien.

J’ai essayé le plugin MQTT et j’ai exactement le même problème.

J’ai essayé de me connecter a un serveur MQTT externe et cela fonctionne.

Avez vous une idée de ce qui peut empêcher le daemon de se lancer?

Merci d’avance

Hello,

Es-tu sur la version stable de jMQTT ?
Si oui, essaye en beta, elle corrigé de nombreux problèmes.

Bad

Je viens de passer sur la beta, ca ne marche toujours pas mais au moins j’ai un message d’erreur.
Après pas mal d’investigation je pense que le problème vient du fait que je n’ai pas systemd dans mon image, ce qui empêche le démarrage automatique du serveur mosquitto.

Tu peux nous donner le message ?
Je vais regarde coté code du plugin ce qu’il faudrait adapter.

1 « J'aime »

Je viens de vérifier, mais c’est bien ce qu’il me semblait : le plugin n’installe pas Mosquitto en démarrage automatique, car (normalement) c’est fait par défaut par le système/package.

Etant dans un cas particulier, tu vas devoir mettre en place un script de lancement.
As-tu init.d sur ton système ? Sinon il faudra probablement que tu mettes ça dans rc.local.

UnRaid a l’air d’avoir sa propre façon de faire. Je te recommande donc de ne pas installer Mosquitto via jMQTT, mais dans un docker dédié (ce qui est plus pérenne en passant).

Voici un tuto trouvé sur un site spécialisé :

Une fois installé et fonctionel, enregistre le comme Broker dans jMQTT et tout ira bien :crossed_fingers:

Bad