如何传递launchd中更改的文件的名称?

时间:2013-05-04 15:28:43

标签: macos launchd

我正在尝试通过launchd查看目录以进行更改。我的plist 文件看起来像这样:

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

所有这些都可行,但我想传递该文件的名称 被更改为脚本/ Users / myname / bin / boink

的参数

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

感谢。

1 个答案:

答案 0 :(得分:1)

简短的回答是:不。 launchd(8)使用Kqueue(http://en.wikipedia.org/wiki/Kqueue)来接收此类通知。很遗憾,kqueue(2)不会返回哪个项触发了该事件。

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