2

我正在尝试通过launchd查看目录的更改。我的 plist 文件如下所示:

<key>ProgramArguments</key>
<array>
  <string>/Users/myname/bin/boink</string>
  <string>path modified</string>
</array>

所有这些工作正常,但我想将更改的文件的名称作为参数传递给脚本 /Users/myname/bin/boink

那可能吗?手册页不是很有帮助,谷歌搜索也没有太大帮助。

谢谢。

4

1 回答 1

1

最简洁的答案是不。launchd(8)使用 Kqueue ( http://en.wikipedia.org/wiki/Kqueue ) 来接收这种通知。不幸的是kqueue(2),不会返回触发事件的项目

您可能想改用launchd(8)密钥QueueDirectories。它的工作方式基本相同WatchPaths,但它假定处理代理/守护程序正在将已处理的项目从被监视的目录移动到另一个目录。因此,每当触发事件时,您的作业都可以处理受监视目录中的每个文件。只要确保在处理后移动它们即可。

于 2013-05-05T04:49:16.027 回答