Lưu một danh sách tài sản như thế này như ~/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>
Các tác nhân có thể được tải với launchctl load ~/Library/LaunchAgents/test.plist
hoặc bằng cách đăng xuất và đăng nhập lại. Áp dụng các thay đổi đòi hỏi phải dỡ và tải bản gốc.
Tilde mở rộng ( ~/
) hoạt động trong WatchPaths theo mặc định. EnableGlobbing thêm bản mở rộng ký tự đại diện và dấu ngã cho ProgramArgument, nhưng nó không ảnh hưởng đến Chương trình hoặc WatchPath.
Nếu một tệp đã xem được sửa đổi trong vòng mười giây kể từ lần gọi cuối cùng, một thông báo như thế này sẽ được thêm vào system.log:
com.apple.launchd.peruser.501[146]: (test) Throttling respawn: Will start in 7 seconds
Một cách để loại bỏ các tin nhắn là thêm một cái gì đó sleep 10
vào cuối tập lệnh. Đặt ThrptionInterval thành 10 không có ích.
Thay đổi trong các thư mục con của các thư mục đã xem không được phát hiện.
Xem man launchd
và man launchd.plist
để biết thêm thông tin.