95

私はmongo1.8.2を実行していて、Macでそれをきれいにシャットダウンする方法を確認しようとしています。

私たちのubuntuサーバーでは、次の方法でmongoシェルからmongoをクリーンにシャットダウンできます。

> use admin
> db.shutdownServer()

しかし、私のMacでは、mongodプロセスを強制終了しません。出力は、「シャットダウンする必要がある」ことを示していますが、i ps -ef | grepmongoアクティブなプロセスを表示します。また、mongoシェルを開いて、シャットダウンされなかったようにデータベースにクエリを実行することもできます。

ローカルでのdb.shutdownServer()からの出力は次のとおりです。

MongoDB shell version: 1.8.2
connecting to: test
> use admin                  
switched to db admin
> db.shutdownServer()
Tue Dec 13 11:44:21 DBClientCursor::init call() failed
Tue Dec 13 11:44:21 query failed : admin.$cmd { shutdown: 1.0 } to: 127.0.0.1
server should be down...
Tue Dec 13 11:44:21 trying reconnect to 127.0.0.1
Tue Dec 13 11:44:21 reconnect 127.0.0.1 failed couldn't connect to server 127.0.0.1
Tue Dec 13 11:44:21 Error: error doing query: unknown shell/collection.js:150

プロセスを強制終了できることはわかっていますが、もっとクリーンに実行したいと思います。

4

9 に答える 9

196

これはおそらく、launchctlがmongodインスタンスを管理しているためです。mongodインスタンスを開始およびシャットダウンする場合は、最初にそれをアンロードします。

launchctl unload -w ~/Library/LaunchAgents/org.mongodb.mongod.plist

次に、mongodを手動で起動します。

mongod -f path/to/mongod.conf --fork

mongod.confの場所はから見つけることができます~/Library/LaunchAgents/org.mongodb.mongod.plist

その後、db.shutdownServer()うまくいくでしょう。

2014年2月22日追加:

homebrewを介してmongodbをインストールしている場合、homebrewには実際に便利なbrew servicesコマンドがあります。現在実行中のサービスを表示するには:

brew services list

mongodbを開始するには:

brew services start mongodb-community

すでに実行されている場合にmongodbを停止するには:

brew services stop mongodb-community

更新*

コメントでedufinnが指摘したように、brew servicesユーザー定義コマンドとして使用できるようになり、次のコマンドでインストールできますbrew tap gapple/services

于 2011-12-14T05:12:15.560 に答える
39

自作でmongodbをインストールした場合、より簡単な方法があります。

launchctlを使用してmongoジョブを一覧表示します。

launchctl list | grep mongo

モンゴの仕事をやめなさい:

launchctl stop <job label>

(私にとってこれはlaunchctl stop homebrew.mxcl.mongodb

mongoジョブを開始します:

launchctl start <job label>
于 2014-02-13T00:57:52.617 に答える
25

簡単な方法は、mongodbのプロセスIDを取得して強制終了することです。データベースに損傷を与える可能性があるため、これにはkill-9pidを使用しないでください。

したがって、1。mongodbのpidを取得します

$ pgrep mongo

あなたはモンゴのpidを取得します、今

$キル

キル-15も使用できます

于 2016-02-17T10:16:23.167 に答える
20

homebrewを介してmongodbコミュニティサーバーをインストールした場合は、次のことができます。

brew services list

これにより、現在のサービスが次のように一覧表示されます。

Name              Status  User          Plist
mongodb-community started thehaystacker /Users/thehaystacker/Library/LaunchAgents/homebrew.mxcl.mongodb-community.plist

redis             stopped

次に、最初に停止して再起動することで、mongodbを再起動できます。

brew services stop mongodb
brew services start mongodb
于 2019-12-29T06:47:18.280 に答える
4

portコマンド自体を使用してMongoDBサーバーを停止することを好みます。

sudo port unload mongodb

そして、それを再開します。

sudo port load mongodb
于 2014-01-13T23:25:39.593 に答える
3

これらのドキュメントをチェックしてください:

http://www.mongodb.org/display/DOCS/Starting+and+Stopping+Mongo#StartingandStoppingMongo-SendingaUnixINTorTERMsignal

ターミナルで起動した場合は、ctrl + 'c'-で問題ないはずです。これにより、クリーンなシャットダウンが実行されます。

ただし、launchctlを使用している場合は、インストール方法によって異なる特定の手順があります。

Homebrewを使用している場合は、launchctl stop homebrew.mxcl.mongodb

于 2011-12-13T22:52:46.993 に答える
2

他の人が提供したソリューションは、以前は私のために機能していましたが、現在は機能していません。これは次のとおりです。

brew services stop mongodb
brew services start mongodb

brew services list与える

Name              Status  User      Plist
mongodb-community started XXXXXXXXX /Users/XXXXXXXXX/Library/LaunchAgents/homebrew.mxcl.mongodb-community.plist

だから私は私のために働いたmongodb-community代わりに使用しましたmongodb

brew services stop mongodb-community
brew services start mongodb-community
于 2020-10-28T07:49:35.727 に答える
1

これは古い質問ですが、検索中に見つけた質問でもあります。

でインストールしたbrew場合、解決策は実際には次のようになります。

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

于 2015-10-04T02:11:00.350 に答える
0

サービスがbrew経由で実行されている場合は、次のコマンドを使用してサービスを停止できます。

brew services stop mongodb
于 2020-07-20T06:39:54.590 に答える