OS Xで起動時にコマンドを実行するには、を使用する必要がありますlaunchd
。
Lingonを使用したくない場合は、launchd
プロパティリストを作成する必要があります。これはXMLファイルであるため、お気に入りのテキストエディターで実行することも、Mac OS X Dev Toolsと共にインストールされるプロパティリストエディターを使用することもできます。以下を作成します。
<?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に置き換えます。
/etc
起動時に実行する必要がありますか?それが何であるかは重要ですか?