Ich verstehe, dass bei Verwendung von Homebrew eine Plist-Datei bereitgestellt wird und ein Benutzer Launchctl verwenden kann, um diese Plist-Datei zu installieren.
Aber ich verwende weder Homebrew noch Macport. Ich habe Mosquitto-Binärdateien direkt aus der Mosquitto-Quelldistribution erstellt und möchte Mosquitto Broker automatisch starten können (genau wie andere Daemons).
Der Homebrew-Mosquitto-Launch-Agent sieht so aus:
<?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>
Abhängig von Ihrem Installationsverzeichnis von mosquitto ändern Sie die beiden Pfadzeichenfolgen in ProgramArguments und den Pfad des WorkingDirectory .
Ändern Sie auch das Label in org.user.mosquitto (um zukünftige Konflikte mit einer möglichen Homebrew-Mosquitto-Installation zu vermeiden) und speichern Sie die Datei dann als org.user.mosquitto.plist in ~/Library/LaunchAgents/.
Laden Sie den Agenten mit launchctl load ~/Library/LaunchAgents/org.user.mosquitto.plist
.
Unter bestimmten Umständen (die make install-Optionen, die Sie in Ihrer Frage nicht angegeben haben) kann es erforderlich sein, die Plist-Datei unter /Library/LaunchAgents (anstelle von ~/Library/LaunchAgents) zu speichern, die Berechtigungen für root:wheel 644 und zu ändern beginne es mit:
sudo launchctl load /Library/LaunchAgents/org.user.mosquitto.plist
Jetzt können Sie die Installation testen und sicherstellen, dass der Server erfolgreich läuft. Öffnen Sie ein neues Befehlsfenster und starten Sie einen Listener.
mosquitto_sub -t topic/state
Senden Sie in einem anderen Fenster eine Nachricht an den Listener.
mosquitto_pub -t topic/state -m "Hello World"
tdwong.star
launchctl list | grep mosquitto
das erste Feld (sollte eine gültige PID sein) verwendet und überprüft habe, um zu sehen, ob der Mosquitto-Broker erfolgreich gestartet wurde.klanomath
tdwong.star