在Mac OS X上设置守护进程

我最近投入了诱惑,买了一台新的MacBook – 我升级了内存,获得了AppleCare等等,我真的很开心! 我一直在设置我的开发环境 – 编译我自己的Apache(内置一个非常糟糕,或者我听说过),PHP和一切按我想要的方式设置。

由于我没有使用默认的Apache,我想知道如何将Apache和其他应用程序设置为守护程序; 在后台运行,就像Windows的服务一样。

我想知道你们有没有这方面的经验,如果你能帮我一把。

OSX使用launchd来pipe理所有守护进程的启动和停止。 如果谷歌的“launchd”第一个结果是苹果的文章如何使用它(我会刚刚链接,但stackoverflow不会让我)

对于你想要做的,我build议你简单地编辑已经存在的apache launchd文件来指向你自己的二进制文件。 然后,您可以使用“共享”首选项窗格来控制它。 该文件位于/System/Library/LaunchDaemons/org.apache.httpd.plist

你需要使用launchd ,苹果的工具来pipe理所有的系统进程。 Launchd是一整套专门的unix实用程序的统一替代品,它们pipe理着不同的(init,rc等等)部分。

苹果在他们的网站上覆盖了一些这样的内容,但是他们有一堆过时的文件混合在一起,描述了过时的技术。 丹本杰明有一个很好的书面教程如何安装MySQL 。 这是一个很好的指导,将教你在Mac上安装unix / linux软件的一般步骤(不依赖MacPorts或Fink )。 Dan的MySQL教程通过创buildlaunchdconfiguration文件。

基本上,您将创build一个xmlconfiguration文件( plist文件),它指定工作目录,运行哪个用户等。您将该文件放在特定目录中,然后使用launchctl告诉launchd加载它。

他还有一些关于设置Ruby on Rails的教程,您可能会发现这些教程很有用,但我不认为这涉及任何守护进程。

你会想看看使用launchd。 在苹果的网站上查找。

已经有一段时间了,但是我认为你只需要添加命令来启动apache到/ init / rc(这与向其他基于nix的操作系统添加服务是一样的)。

我还不能评论…你真的应该看看使用launchd的苹果信息 。 有些select是关于守护进程是否按需启动(当一个指定的端口发生TCP连接时)或在系统启动时运行一次,设置环境variables,如果退出会发生什么,是否定期运行等等。是很多的可能性,最好的做法是要了解那里有什么,并为您的特定应用做出最好的select。

属性列表编辑器(在/开发/应用程序/实用工具)只是用于制作和查看plist文件。 我不确定,但你可能需要安装XCode(免费从苹果)有这个工具。