2013-05-04 4 views
2

launchd를 통해 디렉토리를 변경하려고합니다. 내 PLIST 파일은 다음과 같습니다 :launchd에서 변경된 파일의 이름을 어떻게 전달할 수 있습니까?

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

이 모든 확인을 작동하지만, 나는 스크립트/사용자/MyName로/빈/boink

에 인수로 변경되었음을 파일의 이름을 전달하고 싶습니다

그럴 수 있습니까? man 페이지는별로 도움이되지 않으며, 많은 도움이되는 것은 아닙니다.

감사합니다.

+0

직접 파일 시스템을 모니터링해야 할 수도 있습니다. 파일 시스템 이벤트 프로그래밍 가이드 (https://developer.apple.com/library/mac/#documentation/Darwin/Conceptual/FSEvents_ProgGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40005289-CH1- SW1 – mttrb

+0

@ 시몬 :이 질문에 도움이 필요하십니까? – LCC

답변

1

짧은 대답은 다음과 같습니다. launchd(8)은 Kqueue (http://en.wikipedia.org/wiki/Kqueue)를 사용하여 이러한 종류의 알림을받습니다. 불행하게도 kqueue(2)은 을 반환하지 않으며 어느 항목이 이벤트를 트리거했는지 나타냅니다.

대신 launchd(8)QueueDirectories을 사용할 수 있습니다. 그것은 본질적으로 WatchPaths과 동일한 방식으로 작동하지만, 처리 에이전트/디먼이 처리중인 항목을 모니터중인 디렉토리에서 다른 것으로 이동한다고 가정합니다. 따라서 이벤트가 발생할 때마다 을 모니터링 할 디렉토리에있는 모든 파일을 처리 할 수 ​​있습니다. 처리 한 후에 이동하도록하십시오.