3

私は常にmongod同じサーバー上で複数のプロセスを開始することによってレプリカセットをテストしてきました(複数のサーブを使用する方がコストがかかるため、この時点でテストしているだけです)。

ただし、mongoをバージョンv2.0.5に更新したため、mongodを再度起動しようとすると次のようになります(別のポート、別のデータベースフォルダーなど)。

mongod already running

なんでそうなの?このチェックをスキップするフラグはありますか?

更新:何らかの理由で、これは私がmongodそのように実行したときにのみ発生します:

sudo start-stop-daemon --start -c mainuser --exec /usr/local/bin/mongod -- --journal --nohttpinterface --dbpath /home/mainuser/data/db-secondary --logpath /home/mainuser/data/logs/mongodb-secondary.log --logappend --replSet appname --port 30001

私がそのようにそれを実行するとき、それは起こりません:

sudo /usr/local/bin/mongod --journal --nohttpinterface --dbpath /home/mainuser/data/db-secondary --logpath /home/mainuser/data/logs/mongodb-secondary.log --logappend --replSet appname --port 30001

残念ながらstart-stop-daemon、Ubuntu10.04LTSのアップスタートスクリプトで使用するためにを使用する必要があります。なぜこの問題が発生するのでしょうか?

のマンページを読んだ後、start-stop-daemonそれが同じ「サービス」であると認識しているため、意図的にプロセスを再開しようとしていないことが明らかになります。ただし、start-stop-daemonUpstartを使用して別のユーザーとして実行できるようにするためにのみ使用しています。チェックをバイパスすること、または別の方法でupstartで非sudoユーザーとして実行することは可能ですか?

4

3 に答える 3

1

考えられる解決策: start-stop-daemon のキー --name を使用して、異なるプロセスに異なる名前を付ける必要があります。たとえば、node.js の場合:

start-stop-daemon --name node-charts --start --exec /usr/bin/node -- someapp.js

start-stop-daemon --name node-web --start --exec /usr/bin/node -- someotherapp.js

/usr/bin/node プロセス名が同じであるため、名前がないと起動しません。

于 2015-06-04T15:25:43.653 に答える
0

これは の機能であることが判明しstart-stop-daemon、upstart で別のユーザーとして実行するために使用しました。

を使用しないことstart-stop-daemonで、この問題は解決されました。私のupstartスクリプト内で、次を使用してmainuserとして実行しsudoます。

sudo -u mainuser /usr/local/bin/mongod --journal --nohttpinterface --dbpath /home/mainuser/data/db-secondary --logpath /home/mainuser/data/logs/mongodb-secondary.log --logappend --replSet appname --port 30001
于 2012-05-19T21:55:12.517 に答える
-1

これは、実行中の mongod の pid ファイルが既に存在するためです。

start-stop-daemon で別の pid を使用するだけです。例えば、

sudo start-stop-daemon --start --pid=/var/run/mongodb2.pid --chuid mongodb --exec  /usr/bin/mongod -- --config /etc/mongodb2.conf

そのため、「/usr/bin/mongod が既に実行されている」と文句を言うことはありません。

于 2013-06-22T17:01:26.027 に答える