常に存在するものとして、バックグラウンドでmongodを実行したいと思います。これを行う最良の方法は何でしょうか?起動時にMySQLを実行する方法のようなもので、常にバックグラウンドで実行されています。たぶんそれは単なるbashスクリプトですが、もっと良い方法があれば聞いてみるといいでしょう。それが単なるbashの場合-それはどのように見えるでしょうか?ありがとう。
常に存在するものとして、バックグラウンドでmongodを実行したいと思います。これを行う最良の方法は何でしょうか?起動時にMySQLを実行する方法のようなもので、常にバックグラウンドで実行されています。たぶんそれは単なるbashスクリプトですが、もっと良い方法があれば聞いてみるといいでしょう。それが単なるbashの場合-それはどのように見えるでしょうか?ありがとう。
回答:
MongoDBデーモン(mongod)には、サーバーをバックグラウンドで実行するコマンドラインオプションがあります...
--fork
このコマンドラインオプションでは、メッセージを記録するファイルも指定する必要があります(現在のコンソールを使用できないため)。このコマンドの例は次のようになります。
mongod --fork --logpath /var/log/mongod.log
これを/etc/init.d/mongod bashスクリプトファイルに入れることができます。そして、起動時にサービスを実行するには、/ etc / rc#.d /内に標準のシンボリックリンク(S ##&K ##)を作成します。このプロセスをより詳細に説明するチュートリアルがあります。「Init Script Activation」というタイトルのセクションまでスクロールします。これには、次のようなコマンドを実行できるという利点もあります...
service mongod status
service mongod start
service mongod stop
--syslog
は、すべてがシステムログに書き込まれるオプションもあります。
Macを使用しているため、Homebrewを使用してMongoDBをインストールする必要があります(まだインストールしていない場合は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
バックグラウンドで起動し、コンピューターを再起動するたびに起動します。
mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/mongodb/3.2.10/homebrew.mxcl.mongodb.plist ~/Library/LaunchAgents
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
OS Xの起動時にプログラムを実行するための最良の方法は、LaunchDaemonを作成し(Appleのドキュメントを参照し、/ System / Library / LaunchDaemonsにあるApple提供のデーモンをいくつか見て)/ Libraryにインストールすることです。 / LaunchDaemons。 Lingonは、.plistファイルの作成を支援します。
npm install pm2 -g
+pm2 start mongod
+pm2 save
は、セッション間でバックグラウンドプロセスを実行し続けるための優れたクロスプラットフォームの方法です。