NSWorkspace runningApplications 不返回我的 XPC mach 服务

Posted

技术标签:

【中文标题】NSWorkspace runningApplications 不返回我的 XPC mach 服务【英文标题】:NSWorkspace runningApplications doesn't return my XPC mach service 【发布时间】:2014-10-14 12:42:41 【问题描述】:
NSArray *activeApps = [[NSWorkspace sharedWorkspace] runningApplications];

返回正在运行的应用程序和代理,但我看不到我正在运行的 XPC mach 服务(尽管它正在运行并且在活动监视器进程中可见)

即使我在活动监视器中查找 PID

id res = [NSRunningApplication runningApplicationWithProcessIdentifier:223];

我得到 res nil,尽管在其他进程中效果很好

【问题讨论】:

【参考方案1】:

NSRunningApplication documentation 声明:

仅跟踪用户应用程序;这不提供信息 关于系统上的每个进程

您到底想完成什么?您不需要以这种方式检查服务。

【讨论】:

好的,但是“用户应用程序”到底是什么意思?由于此 xpc 由当前用户运行,并且还列出了没有 UI 的助手...我需要知道,XPC 正在运行,因为我无法确定连接(未运行和拒绝连接的响应是相同的) 用户应用程序意味着以该用户身份运行的进程。根据您的描述,您尝试监控的代码很可能是以 root 身份运行的。

以上是关于NSWorkspace runningApplications 不返回我的 XPC mach 服务的主要内容,如果未能解决你的问题,请参考以下文章

CFNotificationCenter 中的 NSWorkspace 通知

Snow Leopard 中 NSWorkspace 和 NSNotificationCentre 的基于块的 API 存在问题

python 使用PyObjC和NSWorkspace设置桌面图片。我是个伪君子!

NSWorkspace openURL 未使用文件类型的默认应用程序打开存储在 iCloud Drive 中的文件

Cocoa:确定唤醒时的网络可用性

如何从正在运行的应用程序生成 UML 文档