Как остановить mongo DB в одной команде

Мне нужно иметь возможность запускать / останавливать MongoDB на cli. Начать довольно просто:

./команду mongod

но чтобы остановить Mongo DB, мне нужно сначала запустить открытую оболочку mongo, а затем ввести две команды:

$ ./монго

используйте admin

db.shutdownServer()

поэтому я не знаю, как остановить mongo DB в одной строке. Любой помочь?

14 ответов


запуск и остановка MongoDB рассматривается в руководстве MongoDB. Он объясняет различные варианты остановки MongoDB через оболочку, cli, драйверы и т. д. В нем также подробно описываются риски неправильной остановки MongoDB (например, повреждение данных) и говорится о различных сигналах убийства.

кроме того, если вы установили MongoDB с помощью диспетчера пакетов для Ubuntu или Debian затем вы можете остановить mongodb (ранее mongod) следующим образом:

  • выскочка: sudo service mongodb stop

  • Sysvinit:sudo /etc/init.d/mongodb stop

или Mac OS X

или Красная Шапочка на основе системы:

  • service mongod stop

или окна если вы установили как службу с именем MongoDB:

  • net stop MongoDB

и если не установлен в качестве службы (начиная с Windows 7+), Вы можете запустить:

  • taskkill /f /im mongod.exe

чтобы узнать больше о проблемах некорректного выключения, как лучше избежать такого сценария и что делать в случае некорректного отключения, пожалуйста, смотрите:восстановление данных после неожиданного выключения.


Если вы буквально хотите одну строку, эквивалентную командам в исходном вопросе, вы можете псевдоним:

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

ответ Марка на запуск и остановку MongoDB через службы является более типичным (и рекомендуемым) административным подходом.


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 имеет 10014 в качестве своего PID, команда будет

kill -2 10014

я последовал за чиновником документация MongoDB для остановки с сигналами. Можно использовать одну из следующих команд (PID представляет Process ID на


одна строка для запуска или остановки службы mongodb с помощью командной строки;

  1. для начала использования сервиса: NET START MONGODB
  2. чтобы остановить использование сервиса:NET STOP MONGODB

Я использую это сам, он работает.


использовать mongod --shutdown

согласно официальному документу:управление-mongodb-процессами/

: D


создайте файл с именем mongostop.летучая мышь!--2-->

сохранить в нем следующий код

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

запустите файл mongostop.bat и вы успешно монго остановились


Я просто сделал:

quit();

обратите внимание, что я использую mongo 3.0.

Монго


из приведенных команд я думаю, что вы на 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 

в окне терминала на компьютере mac нажмите control + C


CTRL + C

в командной строке windows


Я использую этот скрипт запуска на 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 }'`

test -x $PROGRAM || exit 0

case "" 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

Windows

в PowerShell, это: Stop-Service MongoDB

затем начать его снова: Start-Service MongoDB

чтобы проверить это, запустите: net start | findstr MongoDB.

Примечание: выше предполагает MongoDB зарегистрирован как сервис.