Salva un elenco di proprietà come ~/Library/LaunchAgents/test.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN
http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
<key>Label</key>
<string>test</string>
<key>ProgramArguments</key>
<array>
<string>say</string>
<string>yy</string>
</array>
<key>WatchPaths</key>
<array>
<string>~/Desktop/</string>
</array>
</dict>
</plist>
L'agente può essere caricato con launchctl load ~/Library/LaunchAgents/test.plist
o disconnettendosi e rientrando. L'applicazione delle modifiche richiede lo scarico e il caricamento del plist.
L'espansione di Tilde ( ~/
) funziona in WatchPath per impostazione predefinita. EnableGlobbing aggiunge l'espansione jolly e tilde per ProgramArguments, ma non influisce su Program o WatchPath.
Se un file guardato viene modificato entro dieci secondi dall'ultima chiamata, un messaggio come questo viene aggiunto a system.log:
com.apple.launchd.peruser.501[146]: (test) Throttling respawn: Will start in 7 seconds
Un modo per sbarazzarsi dei messaggi è aggiungere qualcosa come sleep 10
alla fine degli script. L'impostazione di ThrottleInterval su 10 non aiuta.
Le modifiche nelle sottocartelle delle cartelle guardate non vengono rilevate.
Visualizza man launchd
e man launchd.plist
per ulteriori informazioni.