Launchd inicia el evento 40 segundos después?

Creé un .plistarchivo, que debería actuar como demonio del sistema (global con el rootusuario). Este .plistarchivo escucha el settingsdirectorio en busca de cambios, como cambiar la configuración de red. Cuando esto sucede, debería iniciar un script Bash.

Sin embargo, funciona, pero no como se esperaba. Cuando abro una conexión VPN, tarda unos 40 segundos hasta que se ejecuta el script Bash. Me gustaría que se ejecute justo después de abrir la conexión VPN.

¿Cómo eliminar el retraso antes del lanzamiento?

Aquí está el código del .plistarchivo:

   <plist version="1.0">
   <dict>
        <key>Label</key>
        <string>lucafuhl.vpnhelper</string>
            <key>Program</key>
            <string>/Users/vpnhelper.sh</string>
        <key>WatchPaths</key>
            <string>/Library/Preferences/SystemConfiguration</string>
    </dict>
    </plist>
Proporcione su archivo .plist para que podamos ver qué propiedades está utilizando.
¿Para qué archivo dentro de SystemConfiguration está monitoreando los cambios? ¿Es posible que el archivo no se modifique hasta 40 segundos después de que se establezca la VPN?
Por lo que sé sobre este sistema, veo todo el archivo en formato /Library/Preferences/SystemConfiguration. No sé exactamente qué archivo está cambiando. Esa fue la forma que encontré aquí en stackexchange
Esta no es un área fuerte para mí, pero si hay un problema en su archivo de configuración de plist, una forma más fácil de crearlo sería usar LaunchControl [ soma-zone.com/LaunchControl/] ; consulte también launchd.info.

Respuestas (1)

Dos cosas:

Prueba a colocar tu

<string>/Library/Preferences/SystemConfiguration</string> 

dentro de un

<array> 
</array>

Además, es posible que pueda ver cuándo ocurre realmente el cambio con el siguiente comando.

sudo fs_usage -f filesys | grep /Library/Preferences/SystemConfiguration