velocizza l'esecuzione di launchctl

2

Ho creato un sacco di script che devono accadere quando collego il mio dock thunderbolt a casa (disabilita wifi, abilita bluetooth, ...).

Per rilevare il fulmine, utilizzo il seguente servizio launchctl :

<?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>Label</key>
    <string>romeovs.dock.agent</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/romeovs/.bin/dock/run.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>LaunchEvents</key>
    <dict>
        <key>com.apple.notifyd.matching</key>
        <dict>
            <key>com.apple.system.config.network_change</key>
            <dict>
                <key>Notification</key>
                <string>com.apple.system.config.network_change</string>
            </dict>
        </dict>
    </dict>
</dict>
</plist>

Questo servizio ascolta launchd per il cambio di rete (rilevando la rete cablata che è collegata al dock). Questa configurazione sembra funzionare ma è molto lento rilevare e agire quando il dock è collegato.

Ci vuole già molto tempo prima che la dock network sia impostata, ma dopo ci vogliono altri 5 secondi prima che lo script venga effettivamente chiamato.

C'è un modo per fare in modo che il servizio rilevi le modifiche alla rete più velocemente (senza impostare un servizio di polling)?

    
posta romeovs 30.07.2014 - 14:07
fonte

1 risposta

1

Il ritardo è più probabile che si trovi all'interno del centro di notifica; il servizio notifyd non è critico in termini di tempo.

Considera l'utilizzo di un processo osservando le notifiche del livello IOKit. Alle notifiche del livello IOKit vengono immediatamente inviate e progettate per i processi che reagiscono alle modifiche dell'hardware.

Provare a utilizzare Growl e HardwareGrowler oltre ad attivare il tuo script.

    
risposta data 30.07.2014 - 17:47
fonte

Leggi altre domande sui tag