Launchd commence l'événement 40 secondes plus tard?

5

J'ai créé un .plistfichier qui devrait faire office de démon système (global avec rootutilisateur). Ce .plistfichier écoute le settingsrépertoire pour des modifications telles que la modification des paramètres réseau. Lorsque cela se produit, il convient de lancer un script Bash.

Cependant, cela fonctionne mais pas comme prévu. Lorsque j'ouvre une connexion VPN, il faut environ 40 secondes pour que le script Bash soit exécuté. Je voudrais qu'il soit exécuté juste après que j'ouvre la connexion VPN.

Comment supprimer le délai avant le lancement?

Voici le code de .plistfichier:

   <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>
réactiver
la source
3
Veuillez fournir votre fichier .plist afin que nous puissions voir quelles propriétés vous utilisez.
NReilingh
Dans quel fichier de SystemConfiguration surveillez-vous les modifications? Est-il possible que le fichier ne soit modifié que 40 secondes après l'établissement du VPN?
tron_jones
D'après ce que je sais de ce système, je regarde tout le fichier /Library/Preferences/SystemConfiguration. Je ne sais pas exactement quel fichier est en train de changer. Telle était la manière que je trouvais ici StackExchange
reav0r
Ce n'est pas un domaine important pour moi, mais s'il y a un problème dans votre fichier de configuration de plist, un moyen plus simple de le créer serait d'utiliser LaunchControl [ soma-zone.com/LaunchControl/] - voir aussi launchd.info.
Harv

Réponses:

1

Deux choses:

Essayez de placer votre

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

à l'intérieur d'un

<array> 
</array>

De plus, vous pourrez peut-être regarder pour voir quand le changement se produit réellement avec la commande ci-dessous.

sudo fs_usage -f filesys | grep /Library/Preferences/SystemConfiguration
Robert Fakes
la source