Estoy intentando configurar el Comprobar_MK con launchd en un servidor Mac, para devolver datos a través del puerto 6556 cuando otra máquina se conecte a él.
(El agente en sí es esencialmente sólo un script que emite diversa información sobre el estado de la máquina en un formato vagamente legible por la máquina).
Soy capaz de conectarme a ella desde la propia máquina, por ejemplo con curl localhost:6556
pero si intento conectarme externamente, sólo se apaga.
Tengo un archivo .plist configurado como el de de.mathias-kettner.check_mk.plist almacenado en /Library/LaunchDaemon:
<?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>EnvironmentVariables</key>
<dict>
<key>HOME</key>
<string>/var/root</string>
<key>PATH</key>
<string>/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin</string>
</dict>
<key>Label</key>
<string>de.mathias-kettner.check_mk</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/check_mk_agent</string>
</array>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockServiceName</key>
<string>6556</string>
</dict>
</dict>
<key>inetdCompatibility</key>
<dict>
<key>Wait</key>
<false/>
</dict>
<key>AbandonProcessGroup</key>
<true/>
<key>StandardErrorPath</key>
<string>/var/log/check_mk.err</string>
<key>WorkingDirectory</key>
<string>/var/root</string>
</dict>
</plist>
(La única diferencia es que el check_mk_agent es /usr/local/bin en lugar de /usr/bin, porque no pude crear el archivo allí).
El archivo check_mk_agent se encuentra en: check_mk_agent.macosx
Lo extraño es que si apunto el archivo .plist a algo como /bin/date
entonces también funciona externamente.
Lo único que puedo concluir es que la tarea se ejecuta con diferentes permisos dependiendo de la IP o interfaz de la que provenga la conexión, pero no sé cómo cambiar los permisos con los que intenta ejecutarse.