gpt4 book ai didi

macos - 如何使用 root 从 OSX 守护进程或代理启动 UI

转载 作者:行者123 更新时间:2023-12-04 17:42:55 28 4
gpt4 key购买 nike

我正在寻找一种在用户登录或系统启动时启动我的程序的方法。该程序需要具有 root 权限,并且需要在顶部菜单栏上显示一些 UI 内容。

我曾尝试使用 launchd 将其作为守护程序和代理启动。问题是守护进程不能有 UI。代理以用户身份运行,因此它没有 root 权限。

我还尝试让守护进程使用 setsid() 调用脚本,以使我的程序在不同的进程组中运行,但这也无济于事。它只是无法显示任何 UI 内容。

我是 OSX 的新手,真的需要一些帮助。

最佳答案

正如您正确识别的那样,守护程序无法显示 UI。您需要的是一个单独的程序,该程序与守护程序进行通信以提供所需的 UI。

有多种通信方法。如果设计合适,首选方法是使用 XPC services ,在这种情况下,您将创建主 GUI 应用程序并使守护程序成为该应用程序的 XPC 服务。

或者,GUI 应用程序可以是启动代理,因此它在登录时启动,然后您需要提供两个进程之间的通信。有几种方法可以做到这一点,例如使用 Distributed NotificationsTCP Sockets and Streamslocal sockets

无论您选择哪种方法,为了让守护程序提供 UI,您都必须使用单独的进程。

关于macos - 如何使用 root 从 OSX 守护进程或代理启动 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24814682/

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