¿Cómo hacer que el intermediario de mosquitos se inicie automáticamente en Mac OS (sin homebrew)?

2

Entiendo que al usar homebrew, se proporcionará un archivo plist y un usuario puede usar launchctl para instalar ese archivo.

Pero, no estoy usando homebrew (ni macport). Construí binarios de mosquitos directamente desde la distribución de fuentes de mosquitos y me gustaría poder iniciar el agente de mosquitos automáticamente (al igual que otros demonios).

    
pregunta tdwong.star 11.03.2017 - 21:47

1 respuesta

3

El agente de lanzamiento de mosquitos homebrew tiene este aspecto:

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

Dependiendo del directorio de instalación de mosquitto, modifique las dos cadenas de ruta en ProgramArguments y la ruta de acceso de WorkingDirectory .

También modifique la etiqueta a org.user.mosquitto (para evitar futuros conflictos con una posible instalación de mosquit en el hogar) y luego guarde el archivo como org.user.mosquitto.plist en ~ / Library / LaunchAgents /.

Cargue el agente con launchctl load ~/Library/LaunchAgents/org.user.mosquitto.plist .

Bajo ciertas circunstancias (las opciones de instalación de instalación que no especificó en su pregunta) puede ser necesario guardar el archivo plist en / Library / LaunchAgents (en lugar de ~ / Library / LaunchAgents), modificar los permisos en la raíz: rueda 644 y comience con:

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

Ahora puede probar la instalación y asegurarse de que el servidor se está ejecutando correctamente. Abra una nueva ventana de comandos e inicie una escucha.

mosquitto_sub -t topic/state

En otra ventana, envía un mensaje al oyente.

mosquitto_pub -t topic/state -m "Hello World"
    
respondido por el klanomath 11.03.2017 - 22:26

Lea otras preguntas en las etiquetas