Обнаружение запуска и завершения приложения агента без опроса в Mac OS X
Мне нужно иметь возможность определять запуск и завершение приложения агента без опроса в Mac OS X
Техническое примечание Apple TN2050 предлагает использовать NSWorkspace или Kqueues.
Похоже, что NSWorkspaceDidLaunchApplicationNotifications не будет работать с приложением агента. Я не совсем понимаю, почему, но он чувствителен к наличию атрибута LSUIElement=1.
KQueue API может обнаруживать завершение процесса только с помощью NOTE_EXIT и успешно обнаруживает выход агента приложения. Однако нет никакого способа обнаружить событие запуска приложения, используя этот API.
Я также экспериментировал с подсистемой авторизации ядра и обнаружил, что можно обнаружить запуск агента, используя KAUTH_SCOPE_VNODE с KAUTH_VNODE_EXECUTE или KAUTH_SCOPE_FILEOP с KAUTH_FILEOP_EXEC. Однако мне не удалось найти способ обнаружения завершения процесса с помощью KAuth.
Есть ли лучший способ обнаружения запуска и завершения приложения агента, кроме использования комбинации KAuth для обнаружения запуска и KQueue для обнаружения завершения?
Спасибо