いつも存在するものとして、mongodをバックグラウンドで実行したいと思います。これを行う最善の方法は何でしょうか?起動時にMySQLを実行する方法のようなもので、常にバックグラウンドで実行されています。多分それはいくつかのbashスクリプトだけかもしれませんが、もっと良い方法があるかどうか聞いていただければ嬉しいです。それが単にbashである場合-それはどのように見えますか?ありがとう。
MongoDBデーモン(mongod)には、サーバーをバックグラウンドで実行するコマンドラインオプションがあります...
--fork
このコマンドラインオプションでは、メッセージを記録するファイルも指定する必要があります(現在のコンソールを使用できないため)。このコマンドの例は次のようになります。
mongod --fork --logpath /var/log/mongod.log
これを/etc/init.d/mongod bashスクリプトファイルに入れることができます。次に、起動時にサービスを実行するには、/ etc/rc#.d /内に標準のシンボリックリンク(S ##&K ##)を作成します。このプロセスをさらに詳しく説明する tutorial を次に示します。 「Init Script Activation」というタイトルのセクションまでスクロールします。これには、次のようなコマンドを実行できるという追加の利点もあります...
service mongod status
service mongod start
service mongod stop
Macを使用しているため、MongoDBをインストールするには Homebrew を使用する必要があります(Homebrewをまだインストールしていない場合はインストールする必要があります)。
brew install mongodb
インストールされたバージョンの名前が2.0.6-x86_64
。次に、生成されたLaunchAgent plistファイルを追加します。
mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/mongodb/2.0.6-x86_64/homebrew.mxcl.mongodb.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
これでmongod
がバックグラウンドで起動し、コンピュータを再起動するたびに起動します。
次のコマンドを実行してみてください。
mongod --fork --syslog
古典的には、バックグラウンドで実行するには、
nohup some_command-起動して&
これがNohup&なので、実行するコマンドをNohupと&の間にバックグラウンドで配置します。そのまま実行します。ターミナルを閉じるかログアウトした後も実行を続けます。 Sudoを介して別のユーザーとして起動できます。起動時に実行するには、それをinitスクリプトの置き換えに追加します(何と呼ばれるかわかりません)。それはNohup.outと呼ばれるそれを開始したファイルにすべての出力を書き込みます
OS Xの起動時にプログラムを実行する最良の方法は、LaunchDaemonを作成することです( Appleのドキュメント を参照)、/ System/Library/LaunchDaemonsにあるApple提供のデーモンをいくつか見てください。 )、/ Library/LaunchDaemonsにインストールします。 Lingon は、.plistファイルの作成に役立ちます。