使用NSTask运行/ bin / ps并启用App Sandboxing

时间:2016-07-26 02:19:12

标签: macos cocoa sandbox nstask appstore-sandbox

我有一个需要获取进程列表的cocoa应用程序。启用应用程序沙盒后,我得到/bin/ps: Operation not permitted。还有另一种方法可以与app沙盒兼容吗?我是通过NSTask

运行的

2 个答案:

答案 0 :(得分:1)

您无法从沙箱中运行ps,因为它是一个set-uid根程序。

没有其他记录的方法来获取进程列表。但是,libproc.h中描述了一个未记录的API。我不确定你是否可以在沙盒中使用它,但值得一试。

答案 1 :(得分:0)

您可以使用[[NSWorkspace sharedWorkspace] runningApplications]获取所有进程的列表。这将返回一个NSRunningApplications数组。

https://developer.apple.com/reference/appkit/nsworkspace https://developer.apple.com/reference/appkit/nsworkspace/1534059-runningapplications https://developer.apple.com/reference/appkit/nsrunningapplication