2 votes

Comment faire pour que le courtier mosquitto démarre automatiquement sur Mac OS (sans homebrew) ?

Je comprends qu'en utilisant homebrew, un fichier plist sera fourni et un utilisateur peut utiliser launchctl pour installer ce fichier plist.

Mais, je n'utilise pas homebrew (ni macport). J'ai construit les binaires de mosquitto directement à partir de la distribution des sources de mosquitto et j'aimerais pouvoir démarrer le courtier mosquitto automatiquement (tout comme les autres démons).

3voto

klanomath Points 63400

L'agent de lancement mosquitto maison ressemble à ceci :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>homebrew.mxcl.mosquitto</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/opt/mosquitto/sbin/mosquitto</string>
    <string>-c</string>
    <string>/usr/local/etc/mosquitto/mosquitto.conf</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>KeepAlive</key>
  <false/>
  <key>WorkingDirectory</key>
  <string>/usr/local/var/mosquitto</string>
</dict>
</plist>

En fonction de votre répertoire d'installation de mosquitto, modifiez les deux chaînes de chemin dans Arguments de programme et le chemin de la Répertoire de travail .

Modifiez également le Label en org.user.mosquitto (pour éviter tout conflit futur avec une éventuelle installation homebrew de mosquitto), puis enregistrez le fichier sous le nom org.user.mosquitto.plist dans ~/Bibliothèque/LaunchAgents/.

Chargez l'agent avec launchctl load ~/Library/LaunchAgents/org.user.mosquitto.plist .


Dans certaines circonstances (les options de make install que vous n'avez pas spécifiées dans votre question), il peut être nécessaire d'enregistrer le fichier plist dans /Library/LaunchAgents (au lieu de ~/Library/LaunchAgents), de modifier les permissions à Root:wheel 644 et de le démarrer avec :

sudo launchctl load /Library/LaunchAgents/org.user.mosquitto.plist

Vous pouvez maintenant tester l'installation et vous assurer que le serveur fonctionne correctement. Ouvrez une nouvelle fenêtre de commande et démarrez un listener.

mosquitto_sub -t topic/state

Dans une autre fenêtre, envoyez un message à l'auditeur.

mosquitto_pub -t topic/state -m "Hello World"

0 votes

Merci. Une chose qui n'est pas mentionnée dans votre réponse est de s'assurer que le WorkingDirectory indiqué dans le fichier plist existe. Par ailleurs, j'ai utilisé launchctl list | grep mosquitto et vérifiez le premier champ (qui devrait être un pid valide) pour voir si le courtier mosquitto est lancé avec succès.

0 votes

@TzunghsingDavidWong Hmm je ne l'ai pas dit explicitement mais implicitement : "En fonction de votre répertoire d'installation de mosquitto modifiez les deux chaînes de chemin dans [...] le chemin du WorkingDirectory." ;-)

0 votes

Désolé... j'ai négligé ce point. Dans mon cas, je n'ai rien installé. J'ai simplement récupéré les binaires de mosquitto et les bibliothèques partagées à partir d'une sauvegarde de la machine à remonter le temps et je les ai déposés dans mon /usr/local. Et ils fonctionnent tout simplement 8-)

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X