1 votos

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

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.

1voto

Oliver Puntos 11

¿por qué no está utilizando ssh para solicitar los datos del agente en el mac? https://mathias-kettner.de/checkmk_datasource_programs.html No es necesario el launchd.

saludos, Oliver

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X