Speichern Sie eine Eigenschaftsliste wie folgt ~/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>
Der Agent kann mit launchctl load ~/Library/LaunchAgents/test.plist
oder durch Abmelden und erneutes Anmelden geladen werden . Um Änderungen zu übernehmen, muss die Plist entladen und geladen werden .
Tilde ~/
extension ( ) funktioniert standardmäßig in WatchPaths. EnableGlobbing fügt Platzhalter- und Tilde-Erweiterungen für ProgramArguments hinzu, hat jedoch keine Auswirkungen auf Program oder WatchPaths.
Wenn eine überwachte Datei innerhalb von zehn Sekunden nach dem letzten Aufruf geändert wird, wird eine folgende Meldung zu system.log hinzugefügt:
com.apple.launchd.peruser.501[146]: (test) Throttling respawn: Will start in 7 seconds
Eine Möglichkeit, die Nachrichten zu entfernen, besteht darin sleep 10
, am Ende von Skripten etwas hinzuzufügen . Das Setzen von ThrottleInterval auf 10 hilft nicht.
Änderungen in Unterordnern von überwachten Ordnern werden nicht erkannt.
Siehe man launchd
und man launchd.plist
für weitere Informationen.