gpt4 book ai didi

objective-c - NSTask + ps + App Sandbox = 错误

转载 作者:行者123 更新时间:2023-12-05 07:58:37 25 4
gpt4 key购买 nike

我正在尝试通过 OS X 上的 NSTask 使用 bash“ps”命令获取进程列表。

当我打开 App Sandbox 时,应用程序崩溃并且我在控制台中收到此错误:

14.06.14 2:16:35,426 sandboxd[356]: ([74340]) MyApp(74340) deny forbidden-exec-sugid

这个问题有解决办法吗?

代码片段:

NSTask *topTask = [NSTask new];
[topTask setLaunchPath:@"/bin/ps"];
[topTask setArguments:[NSArray arrayWithObjects:
@"-eo", @"pid,pcpu,rss,comm", // output columns
nil]];

最佳答案

ps 是一个 setuid 根进程,因此不能从沙箱中运行。

您可以在沙箱中拥有来自 [[NSWorkspace sharedWorkspace] runningApplications]pid、rss、comm 而不是 pcpu这将为您提供 NSRunningApplication 的 NSArray

您可能可以使用 libproc () 实现等效功能或 sysctl。 Similar question for statistics

根据您想要实现的目标,这里有一个有趣的链接 observing processes: TN2050

关于objective-c - NSTask + ps + App Sandbox = 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24219789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com