gpt4 book ai didi

objective-c - 如何使用 Xcode 在 Mac 上编写 "System Process"(启动过程)?

转载 作者:搜寻专家 更新时间:2023-10-30 19:55:28 24 4
gpt4 key购买 nike

我需要编写一个将在后台运行或作为 Mac 上的系统进程运行的应用程序。它需要在启动时运行,甚至在没有用户登录时也需要运行。

我有 Xcode 3.2.6(在这里使用 Xcode 4 对我来说不是一个选项)- 我应该使用什么类型的项目?当我准备好部署它时,如何“安装”它以便它在计算机启动时自动启动?

编辑

我最大的问题是使用什么类型的项目。我需要一个将保持运行并监控服务器并每隔几分钟向其发送更新信息的进程。

我最初为此创建了一个命令行工具。主线程运行并立即存在,所以我将它置于无限循环中,该循环使线程休眠并执行 NSTimer 所需的任何处理。这是错误的方法吗?有更好的吗?这就是我所追求的。

最佳答案

您所描述的在 Mac 上称为守护进程。你想阅读 Daemons and Services Programming Guide有关如何构建它们的说明。

最常见的形式是在 launchd 下运行的 Launch Daemon,在 Launch Daemons and Agents 中有描述。文档。这些适用于 Mac OS X 10.4 及更高版本。

在 10.4 之前,有“启动项”。除非您需要在 10.4 之前的系统上运行,否则不要使用它们。

Technical Note TN2083 (Daemons and Agents)是另一份值得一读的文件。

编辑

是的,命令行模板是最好的起点。

大多数守护进程应该是“按需”运行的。这意味着他们应该让 launchd 在“有趣的事情”发生时运行它们,然后他们应该继续运行以处理其他事件,最后他们应该让 launchd 在一段时间内没有事件进入时杀死它们。 “有趣的事件”是什么样子取决于你的问题。常见事件是套接字上的流量、文件更改或队列目录中存在的文件。在任何这些情况下,Launchd 都可以处理自动运行。

关于objective-c - 如何使用 Xcode 在 Mac 上编写 "System Process"(启动过程)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7355274/

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