Обнаружение запуска и завершения приложения агента без опроса в 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 для обнаружения завершения?

Спасибо

0 ответов

Другие вопросы по тегам