[macos] Mac OS X에서 mongod를 중지하는 깨끗한 방법은 무엇입니까?

mongo 1.8.2를 실행 중이며 Mac에서 깔끔하게 종료하는 방법을 확인하려고합니다.

우분투 서버에서 다음을 사용하여 mongo 셸에서 mongo를 깨끗하게 종료 할 수 있습니다.

> use admin
> db.shutdownServer()

하지만 내 Mac에서는 mongod 프로세스를 죽이지 않습니다. 출력은 종료되어야한다는 것을 보여 주지만 i 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 stop mongodb-community

mongodb가 이미 실행중인 경우 중지하려면 :

brew services stop mongodb-community

최신 정보

edufinn이 주석에서 지적했듯이 brew services이제 사용자 정의 명령으로 사용할 수 있으며 다음 명령으로 설치할 수 있습니다 brew tap gapple/services..


답변

homebrew와 함께 mongodb를 설치했다면 더 쉬운 방법이 있습니다.

launchctl로 mongo 작업 나열 :

launchctl list | grep mongo

몽고 작업 중지 :

launchctl stop <job label>

(저에게 이것은 launchctl stop homebrew.mxcl.mongodb)

mongo 작업 시작 :

launchctl start <job label>


답변

간단한 방법은 mongodb의 프로세스 ID를 가져 와서 죽이는 것입니다. 데이터베이스에 손상을 줄 수 있으므로 kill -9 pid를 사용하지 마십시오.

그래서, 1. mongodb의 pid를 얻으십시오

$ pgrep mongo

몽고의 pid를 얻게 될 것입니다.

$ 죽이기

kill -15도 사용할 수 있습니다.


답변

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


답변

port명령 자체를 사용하여 MongoDB 서버를 중지하는 것을 선호 합니다.

sudo port unload mongodb

그리고 다시 시작합니다.

sudo port load mongodb


답변

다음 문서를 확인하세요.

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

터미널에서 시작했다면 괜찮을 ctrl + 'c'것입니다. 이것은 깨끗한 종료를 할 것입니다.

그러나 launchctl을 사용하는 경우 설치 방법에 따라 달라지는 특정 지침이 있습니다.

Homebrew를 사용하는 경우 launchctl stop homebrew.mxcl.mongodb


답변

이것은 오래된 질문이지만 검색하면서 찾은 질문입니다.

와 함께 설치 brew한 경우 솔루션은 실제로 다음과 같습니다.

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