作为 Apple 开发新手,想做一个 Mac App ,有个需求想咨询大家:
启动 daemon
,类似这样,请问怎么实现。我目前只是知道将 .plist
文件放到 /Library/LaunchDaemons
下可以实现后台运行,但是这个需要 root
权限,请问 app 安装包权限有这么高吗
怎么在图片中的 允许在后台
列表添加我自己的 App ,目前看到了 SMAppService.daemon()
这个 API
我的 daemon
程序必须要求 root
账号,因为他会操作 Tun
1
SenLief 2023-01-06 00:35:33 +08:00 via iPhone
你可以在站里找一下 clash x pro 的开发者老哥,看看他愿不愿意传授几手,增强模式的 tun 就是 root 权限的。
|
2
zhaoxin 2023-01-06 06:28:12 +08:00 via iPhone
|
3
vczyh OP 感谢 @zhaoxin
现在有了新的 API: https://developer.apple.com/documentation/servicemanagement/smappservice 请问如何以 root 运行后台 LoginItems 程序呢? |
4
zhaoxin 2023-01-06 10:09:47 +08:00 via iPhone
@vczyh 你有仔细看我的博客吗?都和你说了你的思路是错的,根本不需要 root 权限。因为你调用系统提供的 API ,那个文件是系统自动生成的,不需要你手动放。
|
6
ihwbunny 2023-01-06 11:31:48 +08:00
我的理解“登录时启动”,是针对用户的,类似用户的 Agents ,而不是 daemons ,相当于 OP 主题中贴图的登录项中的“登录时打开”
daemons 运行于 root ,所以安装的时候也是需要 root 的。即便是全局的 Agents ,也是需要 root 的。 pkg 安装包可以设置需要 root 权限,这样在安装这个 pkg 的时候,系统会自动提示用户输入管理员账户,这样就可以拥有 root 权限了。 |
11
jdjingdian 2023-01-07 17:30:57 +08:00
刚好在研究类似的问题,我想做一些需要 sudo 执行的命令行工具,懒得手动输命令,是不是通过 SMAppService.daemon()这个 api 给 helper 赋予 root 权限,实际上 gui 还是用户权限,控制的时候要用 xpc 通讯呢?看低版本苹果官方的 SMJobless 有点头大,不知道新的 api 会不会简单一点
|