MacでMongoDBをDaemon化して自動起動させる
Mongoidをつかって色々とためしているわけですが、それを使うにはもちろんMongoDBが起動している必要があります。
% mongod -dbpath /usr/local/var/mongodb/ --logpath /usr/local/var/log/mongodb/mongodb.log &
今までは使う都度、上記のコマンドで起動していました。都度といってもだいたい起動しっぱなしなので、Macを再起動するたびにといった感じ。 ちなみに、HomebrewでインストールしたMongoDBなので、dbpathとlogpathをそれぞれ指定して、Homebrewが使うディレクトリ内で完結するようにしています。どうせ毎回起動するんだからと、そろそろ自動起動するようにしちゃってもいいかなと思い始めました。
以下、MongoDB Startup Item for Mac OS X Snow Leopard - Hunter Ford を参考にしつつ作業してみた過程など。
plistファイル
/Library/LaunchDaemons に org.mongo.mongod.plist を設置。
冒頭のコマンドにあわせて、パスを指定してあります。
この際、Vimで空ファイルから作成すると、launchctl: no plist was returned for: /Library/LaunchDaemons/org.mongo.mongod.plist などエラーがでて実行できないときがありました。かといってXcodeでplistファイルを編集すると com.apple.xcode.PlistType なんて拡張属性がついてVimからとても編集しづらいファイルができあがってしまいます。なので、既存のplistファイルをコピーしてmongod.plistに仕立て上げるのがよさそう。そうすればファイルオーナーを気にする必要もなくなるし。今回はPowのplistファイルをもとに作成しました。
起動
# launchctl load /Library/LaunchDaemons/org.mongo.mongod.plist
起動後、ps でmongodプロセスがいることを確認。
終了させる場合はunload