首页 > 解决方案 > Swift/MacOS:以 root 权限启动进程

问题描述

我的应用程序应该检查服务当前是否正在运行。在终端中,命令将是

sudo launchctl list | grep some_service

我似乎无法找到任何资源来创建和使用特权助手来运行受保护的命令。

然而,我找到了这个相当粗略的解决方案,但它安全吗?

另外,是否可以只提升应用程序的权限以每次都以 root 身份运行?如果是这样,我会怎么做?

标签: swiftxcodemacos

解决方案


Cocoa 的等价物launchctl list是ServiceManagement 框架中的SMCopyAllJobDictionaries(_:)

它被弃用了一段时间,但它仍然有效。

可以使用SMJobBless( : : : :)和 XPC 服务创建特权助手,但这并非易事。


推荐阅读