programing

하나의 명령어로 mongo DB를 중지하는 방법

itsource 2023. 2. 13. 21:20
반응형

하나의 명령어로 mongo DB를 중지하는 방법

CLI에서 MongoDB를 시작/정지할 수 있어야 합니다.시작은 매우 간단합니다.

./mongod

그러나 mongo DB를 중지하려면 먼저 open mongo shell을 실행하고 다음 두 개의 명령을 입력해야 합니다.

$ . / mongo

admin 사용

db.shutdown Server()

그래서 어떻게 mongo DB를 한 줄로 멈출지 모르겠어요.도움이 필요하신가요?

MongoDB의 기동과 정지는 MongoDB 매뉴얼에 기재되어 있습니다.셸, CLI, 드라이버 등을 통해 MongoDB를 정지하는 다양한 옵션에 대해 설명합니다.또한 MongoDB(데이터 손상 등)를 잘못 정지할 경우의 위험과 다양한 킬 신호에 대해서도 자세히 설명합니다.

또한 Ubuntu 또는 Debian 패키지 매니저를 사용하여 MongoDB를 설치한 경우 다음과 같이 mongodb(현재 ubuntu의 mongod)를 중지할 수 있습니다.

  • ★★★★★★★★★★★★★★★:sudo service mongod stop

  • ★★★★★★★★★★★★★★★★★:sudo /etc/init.d/mongod stop

또는 Mac OS X의 경우

또는 Red Hat 기반 시스템의 경우:

  • service mongod stop

또는 Windows , 라고 하는 이름의 서비스로 인스톨 하고 있는 경우는,MongoDB:

  • net stop MongoDB

또, Windows 7+ 의 시점에서 서비스로 인스톨 되어 있지 않은 경우는, 다음의 조작을 실행할 수 있습니다.

  • taskkill /f /im mongod.exe

부정한 셧다운의 문제, 그러한 상황을 회피하는 최선의 방법, 부정한 셧다운이 발생했을 경우의 대처 방법에 대해서는, 다음을 참조해 주세요.예기치 않은 종료 후 데이터 복구

원래 질문의 명령어와 동일한 한 줄을 사용할 경우 다음 에일리어스를 지정할 수 있습니다.

mongo --eval "db.getSiblingDB('admin').shutdownServer()"

서비스를 통해 MongoDB를 시작 및 중지하는 것에 대한 Mark의 답변은 보다 일반적인(그리고 권장되는) 관리 접근법입니다.

mongod --dbpath /path/to/your/db --shutdown

자세한 것은, http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/ 를 참조해 주세요.

서버가 단말기에서 포그라운드프로세스로서 실행되고 있는 경우는, 를 눌러 실행할 수 있습니다.

Ctrl-C

실행 중인 서버를 완전히 셧다운하는 다른 방법은 shutdown 명령어를 사용하는 것입니다.

> use admin
> db.shutdownServer();

그렇지 않으면 kill과 같은 명령을 사용하여 신호를 보낼 수 있습니다.mongod의 PID가 10014인 경우 명령어는 다음과 같습니다.

kill -2 10014

MongoDB 공식 문서에 따라 신호 정지에 대해 확인했습니다.다음 명령어 중 하나를 사용할 수 있습니다(PID는Process IDmongod★★★★★★★★★★★★★★★★★★:

kill PID

시그널 15(SIGTERM)를 송신하거나

kill -2 PID

시그널 2(SIGINT)를 송신합니다.

MongoDB 문서의 경고:
사용하지 .kill -9 SIGKILL을 mongod★★★★★★ 。

PID에 없는 PID를 사용할 수 .pkill에 신호를 보내다mongod★★★★★★★★★★★★★★★★★★:

pkill mongod

또는

pkill -2 mongod

또는 훨씬 더 안전한 방법으로, 오직 당신 소유의 프로세스에만 의존할 수 있습니다.

pkill -U $USER mongod

또는

pkill -2 -U $USER mongod

이 있는 는 ": DB"를 사용하여 합니다.sudo§:

sudo pkill mongod
sudo pkill -2 mongod

PS

신호 : 신호 사용: 신호 사용.mongod --shutdown현재의 MongoDB 매뉴얼에 기재되어 있습니다만, 제 머신에서는 동작하지 않습니다(macOS, mongodb v3.4.10, 설치 완료).homebrew

Error parsing command line: unrecognised option '--shutdown'

업데이트 2022-05-10

옵션 " " " "''--shutdown에는 "이러다"로되어 있습니다.Supported on Linux only

PPS

(macOS 고유) 다른 사람이 궁금해하기 전에: 아니요, 명령으로 멈출 수 없었습니다.

brew services stop mongodb

왜냐하면 나는 그것을 로 시작하지 않았기 때문이다.

brew services start mongodb

i i i i i i i i i imongod 라인를 합니다.

mongod --shutdown

공식 문서에 따르면 manage-mongodb-processes/

:D

mongostop이라는 파일을 만듭니다.박쥐

다음 코드를 저장합니다.

 mongo admin --eval "db.shutdownServer()"

mongostop.bat 파일을 실행하면 mongo가 정상적으로 정지됩니다.

특별한 경우는 다음과 같습니다.

mongod를 시작하기 전에:

sudo -u mongod mongod -f /etc/mongod.conf

하고 싶다mongod.

공식 문서인 "Stop mongod Processes" (mongod 프로세스 중지)를 참조하십시오.

(1)shutdownServer★★★★

> use admin
switched to db admin
> db.shutdownServer()
2019-03-06T14:13:15.334+0800 E QUERY    [thread1] Error: shutdownServer failed: {
        "ok" : 0,
        "errmsg" : "shutdown must run from localhost when running db without auth",
        "code" : 13
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.shutdownServer@src/mongo/shell/db.js:302:1
@(shell):1:1

(2)--shutdown직직: :

# mongod --shutdown
There doesn't seem to be a server running with dbpath: /data/db

(3) 이전 시작 명령어 추가 --command:

sudo -u mongod mongod -f /etc/mongod.conf --shutdown
killing process with pid: 30213
failed to kill process: errno:1 Operation not permitted

) (4) 사service★★★★

service mongod stop

그리고.

service mongod status

를 나타내다Active: inactive (dead)mongod는 ps에서 프로세스를 확인할 수 있습니다.

# ps -edaf | grep mongo | grep -v grep
root     30213     1  0 Feb04 ?        03:33:22 mongod --port PORT --dbpath=/var/lib/mongo

마지막으로 몽고드를 멈추세요

# sudo mongod -f /etc/mongod.conf --shutdown
killing process with pid: 30213

지금까지의 근본 원인: 아직 불명...

위의 솔루션이 유용하기를 바랍니다.

Stennie의 답변을 바탕으로 합니다.

mongo --eval "db.getSiblingDB('admin').shutdownServer();quit()"

서버 셧다운 후 mongo가 db에 재접속하려고 하면 지연과 에러 메시지가 발생한다는 것을 알게 되었습니다.셧다운 후에 quit()을 추가하면 속도가 빨라지고 메시지가 감소하지만 메시지는 여전히 존재합니다.

콘텍스트를 추가하고 싶습니다.다른 코드의 테스트 케이스로 mongod를 기동 및 정지하고 있기 때문에 서비스로 등록하는 것은 사용 케이스에 맞지 않습니다.최종적으로 모든 플랫폼에서 실행할 수 있는 것을 희망하고 있습니다(이것은 현재 윈도우에서 테스트되고 있습니다).mongod 3.6.9를 사용하고 있습니다.

명령줄을 사용하여 mongodb 서비스를 시작 또는 중지하기 위한 라이너 1개

  1. 서비스를 시작하려면:NET START MONGODB
  2. 서비스 사용을 중지하려면:NET STOP MONGODB

내가 직접 써봤는데, 작동되네.

주어진 명령어로는 Linux를 사용하고 있는 것 같습니다.

MongoDB 시작:

$ sudo service mongod start
mongod start/running, process XXXXX 

상태를 확인합니다.

$ sudo service mongod status
mongod start/running, process XXXXX 

MongoDB 중지:

$ sudo service mongod stop
mongod stop/waiting 

홈브루 사용(권장 방법):

시작하려면:

brew services start mongodb-community

중지하려면:

brew services stop mongodb-community

저는 그냥 했어요:

quit();

mongo 3.0을 사용하고 있습니다.

몽고

Mac의 터미널 창에서 control+c를 누릅니다.

Ubuntu에서 사용하는 부팅 스크립트입니다.

#!/bin/sh

### BEGIN INIT INFO
# Provides:     mongodb
# Required-Sart:
# Required-Stop:
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description: mongodb
# Description: mongo db server
### END INIT INFO

. /lib/lsb/init-functions

PROGRAM=/opt/mongo/bin/mongod
MONGOPID=`ps -ef | grep 'mongod' | grep -v grep | awk '{print $2}'`

test -x $PROGRAM || exit 0

case "$1" in
  start)
     log_begin_msg "Starting MongoDB server"
         ulimit -v unlimited.
         ulimit -n 100000
     /opt/mongo/bin/mongod --fork --quiet --dbpath /data/db --bind_ip 127.0.0.1 --rest   --config /etc/mongod.conf.
     log_end_msg 0
     ;;
  stop)
     log_begin_msg "Stopping MongoDB server"
     if [ ! -z "$MONGOPID" ]; then
kill -15 $MONGOPID
     fi
     log_end_msg 0
     ;;
  status)
     ;;
  *)
     log_success_msg "Usage: /etc/init.d/mongodb {start|stop|status}"
     exit 1
esac

exit 0

창문들

PowerShell의 특징은 다음과 같습니다.Stop-Service MongoDB

다시 시작하려면:Start-Service MongoDB

시작 여부를 확인하려면 다음을 수행합니다.net start | findstr MongoDB.

메모: 위에서는 MongoDB가 서비스로 등록되어 있는 을 전제로 하고 있습니다.

사용하시는 OS에서 제공하는 태스크 매니저를 이용하여 빠르고 쉽게 해결하시기 바랍니다.Windows 10 의 스크린 그래브를 이하에 나타냅니다.강조 표시된 프로세스를 마우스 오른쪽 버튼으로 클릭하고 중지를 선택합니다.이미 중지된 경우 시작을 선택합니다.

여기에 이미지 설명 입력

주의사항:내부적으로 명령어는 Windows/사용 OS에서 제공되는 GUI(태스크 매니저)를 사용하여 수동으로 수행해야 하는 것과 동일한 작업을 수행합니다. 다만, 이 어프로치를 학습/연습의 목적으로 사용하기 때문에, 이것에 의해서 막히는 일은 없습니다.

sudo /etc/init.d/mongodb start를 시작하려면

sudo /etc/init.d/mongodb stop을 중지하려면

CTRL + C

Windows 명령줄에서

언급URL : https://stackoverflow.com/questions/11774887/how-to-stop-mongo-db-in-one-command

반응형