要在OS X上启动时运行一个命令,你需要使用launchd
。
如果你不想使用 Lingon ,你需要创建一个 launchd
属性列表。这是一个 XML 文件,所以你可以用你最喜欢的文本编辑器来做,或者你可以使用 Mac OS X 开发工具中安装的属性列表编辑器。创建以下内容。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>some.meaningful.name</string> <!-- org.mongodb.mongodb perhaps? -->
<key>OnDemand</key>
<false/>
<key>UserName</key>
<string>anAppropriateUser</string>
<key>GroupName</key>
<string>anAppropriateGroup</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/MongoDB/bin/mongod</string>
<string>--dbpath</string>
<string>/usr/local/mongo/data</string>
<string>--fork</string>
<string>--logpath</string>
<string>/usr/local/mongo/log</string>
</array>
</dict>
</plist>
将其保存在/Library/LaunchAgents/some.meaningful.name.plist
中(你需要一个管理员账户和/或sudo
),然后打开终端并执行:
sudo launchctl load /Library/LaunchAgents/some.meaningful.name.plist
这将会导致launchd加载项目,这将导致它在启动时启动MongoDB。作为奖励,launchd
会监控它,如果它因任何原因退出,就会被重新启动。要摆脱这个项目,只需将上面命令中的load替换为unload即可。