Subscribed unsubscribe Subscribe Subscribe

MacでMongoDBをDaemon化して自動起動させる

mongodb launchctl

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

まとめ

daemon化したい場合、plistファイルを作成すればほぼ完了。簡単でいいですね。


MongoDB for Web Development (Developer's Library)MongoDB: The Definitive GuideThe Definitive Guide to Mongodb: The Nosql Database for Cloud and Desktop ComputingScaling MongoDB50 Tips and Tricks for MongoDB DevelopersNoSQLデータベースファーストガイド