source

Mac OS X에서 mongod를 멈추는 깨끗한 방법은 무엇입니까?

manycodes 2023. 3. 7. 21:39
반응형

Mac OS X에서 mongod를 멈추는 깨끗한 방법은 무엇입니까?

mongo 1.8.2를 실행하고 있는데 Mac에서 완전히 종료하는 방법을 알아보려고 합니다.

ubuntu 서버에서는 다음과 같이 mongo 쉘에서 mongo를 완전히 셧다운할 수 있습니다.

> use admin
> db.shutdownServer()

제 Mac에서는 mongod 프로세스를 종료하지 않습니다.출력에는 shutdown이 '필요'하지만 i ps -ef | grep mongo에서는 액티브한 프로세스가 표시됩니다.또한, 나는 여전히 mongo 쉘을 열고 내 dbs를 셧다운되지 않은 것처럼 조회할 수 있다.

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의 위치는 다음 URL에서 확인할 수 있습니다.~/Library/LaunchAgents/org.mongodb.mongod.plist.

그 후로는db.shutdownServer()잘 될 거야

2014년 2월 22일 추가:

홈브루를 통해 mongodb를 설치한 경우 홈브루는 실제로 핸디캡을 수 있습니다.brew services명령어를 입력합니다.현재 실행 중인 서비스를 표시하려면:

brew services list

mongodb를 시작하려면:

brew services start mongodb-community

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

brew services stop mongodb-community

갱신*

edufinn이 댓글에서 지적했듯이brew services는 사용자 정의 명령어로 사용할 수 있게 되어 다음 명령을 사용하여 설치할 수 있습니다.brew tap gapple/services.

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

launchctl을 사용하여 mongo 작업을 나열합니다.

launchctl list | grep mongo

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

너는 지금 mongo의 pid를 얻을 것이다.

$kill

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

homebrew를 사용하여 mongodb 커뮤니티 서버를 설치한 경우 다음 작업을 수행할 수 있습니다.

brew services list

현재 서비스가 다음과 같이 나열됩니다.

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

redis             stopped

그런 다음 mongodb를 먼저 중지하고 다시 시작하면 됩니다.

brew services stop mongodb
brew services start mongodb

MongoDB 서버를 중지하는 것이 좋습니다.port명령어를 사용합니다.

sudo port unload mongodb

그리고 다시 시작하기 위해서.

sudo port load mongodb

다음 문서를 확인하십시오.

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

단말기로 기동했을 경우,ctrl + 'c'-- 이렇게 하면 완전히 셧다운됩니다.

다만, launchctl 를 사용하고 있는 경우는, 인스톨 방법에 따라서, 구체적인 순서가 다릅니다.

하고 있다면 입니다.launchctl stop homebrew.mxcl.mongodb

타사에서 제공하는 솔루션은 이전에는 나에게 효과가 있었지만, 현재는 효과가 없는 아래와 같습니다.

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-communitymongodb은 나에게 가 있었다.

brew services stop mongodb-community
brew services start mongodb-community

오래된 질문이지만 검색하다가 발견한 질문입니다.

「 」를 는,brew해결책은 실제로 다음과 같습니다.

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

서비스가 brew를 통해 실행되고 있는 경우 다음 명령을 사용하여 서비스를 중지할 수 있습니다.

brew services stop mongodb

언급URL : https://stackoverflow.com/questions/8495293/whats-a-clean-way-to-stop-mongod-on-mac-os-x

반응형