Come rendere automatico il broker di mosquitto su Mac OS (senza homebrew)?

2

Capisco che usando homebrew, verrà fornito un file plist e un utente possa usare launchctl per installare quel file plist.

Ma non sto usando homebrew (né macport). Ho creato i binari del mosquitto direttamente dalla distribuzione dei sorgenti di mosquitto e vorrei poter avviare automaticamente il broker di mosquitto (proprio come gli altri demoni).

    
posta tdwong.star 11.03.2017 - 21:47
fonte

1 risposta

3

L'agente di lancio di homebrew mosquitto ha il seguente aspetto:

<?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>

A seconda della directory di installazione di mosquitto, modifica le due stringhe di percorso in ProgramArguments e il percorso della WorkingDirectory .

Modifica anche l'etichetta su org.user.mosquitto (per evitare conflitti futuri con un'installazione possibile di homebrew mosquitto) e quindi salva il file come org.user.mosquitto.plist in ~ / Library / LaunchAgents /.

Carica l'agente con launchctl load ~/Library/LaunchAgents/org.user.mosquitto.plist .

In determinate circostanze (le opzioni make install che non hai specificato nella tua domanda) potrebbe essere necessario salvare il file plist in / Library / LaunchAgents (invece di ~ / Library / LaunchAgents), modificare i permessi su root: ruota 644 e avvialo con:

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

Ora puoi testare l'installazione e assicurarti che il server funzioni correttamente. Apri una nuova finestra di comando e avvia un listener.

mosquitto_sub -t topic/state

In un'altra finestra, invia un messaggio al listener.

mosquitto_pub -t topic/state -m "Hello World"
    
risposta data 11.03.2017 - 22:26
fonte

Leggi altre domande sui tag