복붙노트

[MONGODB] 하나의 명령에 MongoDB를 중지하는 방법

MONGODB

하나의 명령에 MongoDB를 중지하는 방법

나는 시작 / CLI에 MongoDB를 중지 할 수 있어야합니다. 시작하는 것은 매우 간단하다 :

그러나 MongoDB를 중지, 내가 먼저 개방 몽고 쉘을 실행 한 다음 두 명령을 입력해야합니다

그래서 한 줄에 MongoDB를 중지하는 방법을 모르겠어요. 어떤 도움?

해결법

  1. ==============================

    1.시작 및 MongoDB를가 MongoDB를 설명서에 포함되어 중지. 그것은 쉘, CLI를 통해 MongoDB를 중지의 다양한 옵션을 설명하고, 드라이버 등 또한 다른 강제 종료 신호에 대한 (예 : 데이터 손상 등) 잘못 중지하여 MongoDB의 위험과 대화를 자세히 설명합니다.

    시작 및 MongoDB를가 MongoDB를 설명서에 포함되어 중지. 그것은 쉘, CLI를 통해 MongoDB를 중지의 다양한 옵션을 설명하고, 드라이버 등 또한 다른 강제 종료 신호에 대한 (예 : 데이터 손상 등) 잘못 중지하여 MongoDB의 위험과 대화를 자세히 설명합니다.

    당신이 다음 MongoDB를 중지 할 수 있습니다 우분투 나 데비안의 패키지 관리자를 사용하여 MongoDB를 설치 한 경우 다음과 같이 또한, (이전 mongod) :

    또는 Mac OS X에

    또는 레드햇 기반 시스템 :

    또는 Windows에서 당신은 MongoDB를라는 이름의 서비스로 설치 한 경우 :

    (윈도우 7 + 현재) 서비스로 설치되지 않은 경우 그리고 당신은 실행할 수 있습니다 :

    예기치 않은 종료 후 데이터를 복구 : 가장 피하고 같은 시나리오 어떤 부정한 종료의 경우에 할를 참조하십시오 어떻게 부정 종료의 문제에 대한 자세한 내용은.

  2. ==============================

    2.당신은 말 그대로 원래의 질문에 명령에 한 줄 상당하려면 별칭을 수 :

    당신은 말 그대로 원래의 질문에 명령에 한 줄 상당하려면 별칭을 수 :

    몽고 --eval "db.getSiblingDB ( '관리자'). shutdownServer ()"

    시작 서비스를 통해 MongoDB를 중지에 대한 마크의 대답은 전형적인 (권장) 관리 방법입니다.

  3. ==============================

    3.mongod --dbpath / 경로 /로 / 당신의 / DB --shutdown

    mongod --dbpath / 경로 /로 / 당신의 / DB --shutdown

    공식에서 더 많은 정보 : http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/

  4. ==============================

    4.서버는 단말기의 전경 처리로서 실행되는 경우, 이는 누름으로써 행해질 수있다

    서버는 단말기의 전경 처리로서 실행되는 경우, 이는 누름으로써 행해질 수있다

    Ctrl-C
    

    실행중인 서버 다운 완전히 차단하는 또 다른 방법은 종료 명령을 사용하는 것입니다,

    > use admin
    > db.shutdownServer();
    

    그렇지 않으면, 죽과 같은 명령을 보내는 데 사용할 수 있습니다 신호. mongod는 PID로 10014이있는 경우, 명령이 될 것입니다

    kill -2 10014
    
  5. ==============================

    5.나는 신호를 중지 공식 MongoDB의 문서를 따랐다. 사용할 수있는 다음 명령 (PID는 mongod 프로세스의 프로세스 ID를 나타냅니다) 중 하나 :

    나는 신호를 중지 공식 MongoDB의 문서를 따랐다. 사용할 수있는 다음 명령 (PID는 mongod 프로세스의 프로세스 ID를 나타냅니다) 중 하나 :

    kill PID
    

    이는 신호 (15) (SIGTERM)을 보내거나

    kill -2 PID
    

    이는 신호 2 (SIGINT)를 전송한다.

    하나 개 이상의 인스턴스가 실행이 있거나 PID 걱정하지 않는 경우, 실행중인 모든 mongod 프로세스에 신호를 보내 pkill에 사용할 수 있습니다 :

    pkill mongod
    

    또는

    pkill -2 mongod
    

    또는, 훨씬 더 안전하고, 만에 속하는 프로세스 :

    pkill -U $USER mongod
    

    또는

    pkill -2 -U $USER mongod
    

    추신 참고 : 현재 MongoDB를 문서에서 언급하지만, 호기심 내 컴퓨터 작업을하지 않는 mongod --shutdown 때문에,이 옵션에 의존 (맥 OS, MongoDB를 v3.4.10, 사제와 함께 설치) 구문 분석 명령 줄 오류 : 알 수없는 옵션 '--shutdown'

    PPS 사람의 불가사의 전 (맥 OS의 특정) : 아니, 내가 명령을 막을 수 없다 BREW 서비스 정지 MongoDB를 나는 그것을 시작하지 않았기 때문에 BREW 서비스는 MongoDB를 시작합니다. 나는 사용자 지정 명령 줄 mongod를 시작했다 :-)

  6. ==============================

    6.사용 --shutdown mongod

    사용 --shutdown mongod

    공식 문서에 따르면 관리 - MongoDB를-프로세스를 /

    :디

  7. ==============================

    7.시작하거나 명령 줄을 사용하여 MongoDB 서비스를 중지하는 한 라이너;

    시작하거나 명령 줄을 사용하여 MongoDB 서비스를 중지하는 한 라이너;

    나는이 작업을 수행,이에게 자신을 사용합니다.

  8. ==============================

    8.mongostop.bat라는 파일을 생성

    mongostop.bat라는 파일을 생성

    거기에 다음 코드를 저장

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

    파일 mongostop.bat을 실행하고 성공적으로 몽고이 중지

  9. ==============================

    9.내 특별한 경우입니다 :

    내 특별한 경우입니다 :

    이전 mongod를하여 시작 :

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

    지금, mongod를 중지합니다.

    공식 문서 정지 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) 이전 시작 명령은 --shutdown 추가 :

    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 mongod stop
    

    service mongod status
    

    활성 예상 순위 : (죽은) 비활성하지만 PS에서 과정을 볼 수에 대해 실제로 여전히 실행 mongod :

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

    그리고 마지막으로, 정말 mongod를 들러 :

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

    지금까지, 근본 원인 : 아직 알 수 ...

    솔루션 위의 희망은 유용합니다.

  10. ==============================

    10.주어진 명령에서 나는 당신이 리눅스에있어 생각합니다.

    주어진 명령에서 나는 당신이 리눅스에있어 생각합니다.

    시작 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 
    
  11. ==============================

    11.나는 간단했다 :

    나는 간단했다 :

    떠나다();

    나는 몽고 3.0을 사용하고 있습니다.

    몽고

  12. ==============================

    12.당신의 맥을 눌러 컨트롤의 터미널 창에서 + C

    당신의 맥을 눌러 컨트롤의 터미널 창에서 + C

  13. ==============================

    13.stennie의 대답에 건물 :

    stennie의 대답에 건물 :

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

    나는 서버가 지연 및 오류 메시지가 표시 될 것이다 종료 후 그 몽고가 DB에 다시 연결하려고했던 발견했다. 종료를 가속화하고 메시지를 줄일 수 있지만, 하나는 여전히 후) (종료 추가.

    나는 서비스가 사용 사례에 맞지 않는 정도로 등록, 시작 및 기타 코드에 대한 테스트 케이스의 일환으로 mongod를 정지거야 - 나는 또한 컨텍스트를 추가하려는. 나는 모든 플랫폼 (이 지금 창에서 테스트)에서 실행되는 것을 끝낼 것을 희망하고있다. 나는 mongod의 3.6.9을 사용하고 있습니다

  14. ==============================

    14.나는 우분투이 시작 스크립트를 사용합니다.

    나는 우분투이 시작 스크립트를 사용합니다.

    #!/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
    
  15. ==============================

    15.PowerShell에서, 그건 : 스톱 서비스 MongoDB를을

    PowerShell에서, 그건 : 스톱 서비스 MongoDB를을

    그런 다음 다시 시작 : 시작 서비스 MongoDB를을

    그것을 실행, 시작인지 확인하려면 : net 시작 | FINDSTR MongoDB를.

    참고 : 위는 MongoDB를 서비스로 등록되어 가정합니다.

  16. ==============================

    16.CTRL + C

    CTRL + C

    윈도우 명령 행에서

  17. from https://stackoverflow.com/questions/11774887/how-to-stop-mongo-db-in-one-command by cc-by-sa and MIT license