¿Por qué mi programa launchctl no acepta conexiones externas?

1

Estoy intentando configurar el agente Check_MK con launchd en un servidor Mac, para devolver los datos a través del puerto 6556 cuando otra máquina se conecta a ella.

(El agente en sí mismo es esencialmente un script de shell que genera información diversa sobre el estado de la máquina en un formato vagamente legible por la máquina).

Puedo conectarme a él desde la propia máquina, por ejemplo. con curl localhost:6556 , pero si intento conectarme externamente, simplemente 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 puede encontrar 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 según la IP o la interfaz de la que proviene la conexión, pero no sé cómo cambiar los permisos con los que intenta ejecutarse.

    
pregunta mwfearnley 31.10.2017 - 15:09

1 respuesta

1

¿Por qué no está usando ssh para solicitar los datos del agente en el mac? enlace No necesitas el launchd.

saludos, Oliver

    
respondido por el Oliver 31.10.2017 - 19:51

Lea otras preguntas en las etiquetas