您需要使用launchd,这是 Apple 用于管理所有系统进程的工具。Launchd 是一系列专门的 unix 实用程序的统一替代品,这些实用程序管理不同的部分(init、rc 等)。
Apple 在他们的网站上介绍了其中的一些内容,但他们混合了一堆过时的文档,其中描述了过时的技术。Dan Benjamin 有一篇写得很好的关于如何安装MySQL的教程。这是一个写得很好的指南,它将教你在 Mac 上安装 unix/linux 软件的一般步骤(不依赖MacPorts或Fink)。Dan 的MySQL教程介绍了启动配置文件的创建。
基本上,您将创建一个 xml 配置文件(一个plist文件),它指定工作目录、作为哪个用户运行等。您将该文件放在特定目录中,然后使用 launchctl 告诉 launchd 加载它。
OSX 使用 launchd 来管理所有守护进程的启动和停止。如果你用谷歌搜索“launchd”,第一个结果是苹果关于如何使用它的文章(我只是链接,但 stackoverflow 不会让我)
对于您正在尝试做的事情,我建议您只需编辑已经存在的 apache 启动文件以指向您自己的二进制文件。然后,您可以使用“共享”首选项窗格对其进行控制。该文件位于
/System/Library/LaunchDaemons/org.apache.httpd.plist
您需要使用launchd,这是 Apple 用于管理所有系统进程的工具。Launchd 是一系列专门的 unix 实用程序的统一替代品,这些实用程序管理不同的部分(init、rc 等)。
Apple 在他们的网站上介绍了其中的一些内容,但他们混合了一堆过时的文档,其中描述了过时的技术。Dan Benjamin 有一篇写得很好的关于如何安装MySQL的教程。这是一个写得很好的指南,它将教你在 Mac 上安装 unix/linux 软件的一般步骤(不依赖MacPorts或Fink)。Dan 的MySQL教程介绍了启动配置文件的创建。
基本上,您将创建一个 xml 配置文件(一个plist文件),它指定工作目录、作为哪个用户运行等。您将该文件放在特定目录中,然后使用 launchctl 告诉 launchd 加载它。
他还有设置Ruby on Rails的教程,您可能会觉得这些教程很有用,但我认为这不涉及任何守护进程。
您需要考虑使用 launchd。在 Apple 的网站上查找。
已经有一段时间了......但我认为您只需将启动 apache 的命令添加到 /init/rc (这与向其他基于 *nix 的操作系统添加服务相同)。
我还不能发表评论......你真的应该看看苹果关于使用 launchd的信息。关于守护进程是按需启动(当传入的 TCP 连接发生在指定端口上)还是在系统启动时运行一次、设置环境变量、如果它退出会发生什么、是否定期运行等方面有很多选择。有很多可能性,最佳实践是了解其中的内容并为您的特定应用程序做出最佳选择。
属性列表编辑器(在 /Developer/Applications/Utilities 中)非常适合制作和查看plist文件。我不确定,但您可能需要安装 XCode(Apple 免费提供)才能使用此工具。