【发布时间】:2013-01-27 14:44:32
【问题描述】:
我编写了一个小型 LaunchAgent 来监视文件夹的变化并在发生变化时触发 shell 脚本:
<?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.myusername.w2</string>
<key>ProgramArguments</key>
<array>
<string>/Users/myusername/Desktop/alert</string>
</array>
<key>WatchPaths</key>
<array>
<string>/Users/myusername/Personnel</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>WorkingDirectory</key>
<string>/Users/myusername</string>
<key>StandardErrorPath</key>
<string>myjob.log</string>
<key>StandardOutPath</key>
<string>myjob.log</string>
<key>Debug</key>
<true/>
<key>WaitForDebugger</key>
<true/>
</dict>
</plist>
- 文件名与标签相同
- 我使用 Launchctl 加载和启动代理
- 我退出/登录了我的会话
- 我检查了 Launchctl 列表,代理的 PID 正确,状态码为 0
- 我所有的 URL 都是绝对的
尽管它没有按预期工作:我在监视文件夹中添加了一个文件并且脚本没有被触发。
日志文件已创建但为空(没有错误?)
如果有人能指出正确的方向,那就太棒了。
【问题讨论】:
-
/Users/myusername/Desktop/alert是您要运行的脚本吗? -
@chepner 是的,它是脚本
标签: bash plist osx-mountain-lion launchd