检测代理应用程序启动和终止,无需在Mac OS X上进行轮询

时间:2014-07-11 17:12:27

标签: macos agent nsworkspace

我需要能够检测代理应用程序的启动和终止,而无需在Mac OS X上进行轮询

Apple的技术说明TN2050建议使用NSWorkspace或Kqueues。

似乎NSWorkspaceDidLaunchApplicationNotifications不适用于代理应用。我不完全理解为什么,但它对LSUIElement = 1属性的存在很敏感。

KQueue API只能使用NOTE_EXIT检测进程终止,并会成功检测到应用代理的退出。但是,无法使用此API检测应用启动事件。

我还尝试了内核授权子系统,并发现可以使用带有KAUTH_VNODE_EXECUTE的KAUTH_SCOPE_VNODE或带有KAUTH_FILEOP_EXEC的KAUTH_SCOPE_FILEOP来检测代理启动。但是,我没有找到使用KAuth检测进程终止的方法。

除了使用KAuth组合检测启动和KQueue以检测终止之外,是否有更好的方法来检测代理应用启动和终止?

由于

0 个答案:

没有答案