Subscribed unsubscribe Subscribe Subscribe

デーモンとして産れいづる存在としてのMongoDB

MongoDB

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

以前に、上記エントリを書きましが、Starting and Stopping Mongo - MongoDB という公式のドキュメントにデーモンとして起動するならこうしろというコマンドが書いてました*1

This will fork the Mongo server and redirect its output to a logfile. As with --dbpath, you must create the log path yourself, Mongo will not create parent directories for you.

 $ ./mongod --fork --logpath /var/log/mongodb.log --logappend
http://www.mongodb.org/display/DOCS/Starting+and+Stopping+Mongo#StartingandStoppingMongo-RunningasaDaemon

forkオプションを指定しています。これについては Command Line Parameters - MongoDB か、mongod --helpで調べられます。
曰く、サーバプロセスをforkします、と。それによってバックグラウンドで動作しますよ、と。アンパサンドをつけてバックグラウンドで動作させてもいいのかもしれませんが、その場合プロセスの優先度が低くなるという違いがあるようです*2。それによってMongoDBとしてのパフォーマンスが低下するかもしれません。

Macならば冒頭のエントリで書いたlaunchctl を使うと、内部的な挙動は違うかもしれませんがforkオプションを指定せずともデーモンとして動作しています。それ以外の環境でデーモンとして動かしたいときにはこのforkオプションを使えばよい、と。

ちなみに、logappendオプションを指定すると、ログファイル上書きではなく、追記になる。ログファイル肥大化しそうなので、ケースバイケースで。

*1:ただし英語ドキュメントに限る

*2:ps aux で確認