एक विकल्प सिर्फ लॉन्च लॉन्च का उपयोग करना होगा। इस तरह से एक संपत्ति सूची को सहेजें ~/Library/LaunchAgents/com.superuser.445907.plist
, और इसे launchctl load ~/Library/LaunchAgents/com.superuser.445907.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>com.superuser.445907</string>
<key>Program</key>
<string>/Users/username/script</string> <!-- ~/ doesn't work -->
<key>WatchPaths</key>
<array>
<string>/Users/username/Folder/</string>
</array>
<key>ThrotteInterval</key>
<integer>0</integer> <!-- run at most every 0 seconds, by default 10 -->
</dict>
</plist>
लॉन्चड केवल उन फ़ाइलों में बदलावों को पंजीकृत करता है जब उन्हें परमाणु रूप से सहेजा जाता है, या हर बार सहेजने के बाद हटा दिया जाता है और पुनः बनाया जाता है। अधिकांश OS X अनुप्रयोग डिफ़ॉल्ट रूप से परमाणु बचत करते हैं, लेकिन उदाहरण के लिए TextMate और vim नहीं। देखे गए फ़ोल्डर के सबफ़ोल्डर में परिवर्तन का पता नहीं लगाया गया है।
launchctl unload $path && launchctl load $path
प्लिस्ट में परिवर्तन लागू करता है।
देखें man launchd
और man launchd.plist
अधिक जानकारी के लिए।