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设置桌面图片。我是个伪君子!