[解決済み] Mac OS Xでmongodを停止するクリーンな方法は何ですか?
質問
私は mongo 1.8.2 を使っていますが、Mac 上でそれをきれいにシャットダウンする方法を見ようとしています。
私たちのubuntuサーバーでは、mongoシェルからmongoをきれいにシャットダウンすることができます。
> use admin
> db.shutdownServer()
出力ではシャットダウンされているはずですが、ps -ef | grep mongo を実行すると、アクティブなプロセスが表示されます。また、シャットダウンされていないかのように、mongo シェルを開いて DB を照会することができます。
ローカルでの 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
プロセスを終了させることができるのは知っていますが、もっときれいに終了させたいと思います。
どのように解決するのですか?
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
.
関連
-
[解決済み】Macでポート3000をロックしているプロセスを検索(およびkill)する
-
[解決済み】Mongod が /data/db フォルダがないと文句を言う問題
-
[解決済み] Mac OS Xで、指定したTCPポートでリッスンしているのは誰ですか?
-
[解決済み] Mac OSでNode.jsを最新バージョンにアップグレードする。
-
[解決済み】Mac OS XでPostgreSQLサーバーを起動するには?
-
[解決済み】Mac OS Xでは、Javaはどこにインストールされていますか?
-
[解決済み] MacでMonoDevelopを複数起動するにはどうしたらいいですか?
-
[解決済み] Mac OS XでのApache 2サイトファイル/フォルダの正しいオーナー/グループ/パーミッションは?
-
[解決済み] NSTextFieldから値を取得する
-
[解決済み] SourceTreeでコミットされていない変更を破棄するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Mac OS X のタイムアウトコマンド?
-
[解決済み] OS Xのコマンドラインからアクティブユーザーの名前を取得するにはどうしたらいいですか?
-
[解決済み] OS X で $PATH 変数の現在の値を見るにはどうしたらいいですか?
-
[解決済み] Mac OS Xのビルトインvimのアップデート
-
[解決済み] pkgファイルを解凍・梱包する方法を教えてください。
-
[解決済み] Mac OS X Leopard の Emacs キーバインド
-
[解決済み] タスクを頻繁に実行するように設定するにはどうすればよいですか?
-
[解決済み] OSXアプリバンドル構築
-
[解決済み] MacOS: /dev/tty.*と/dev/cu.*の違いは何ですか?
-
[解決済み] 新しいMac OS Xのターミナルウィンドウでコマンドを実行する