Как остановить 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
найти PID процесса mongod с помощью
$ top
убить процесс с помощью
$ kill <PID>
(в документах Mongo есть дополнительная информация об этом)
или Красная Шапочка на основе системы:
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 с помощью командной строки;
- для начала использования сервиса:
NET START MONGODB
- чтобы остановить использование сервиса:
NET STOP MONGODB
Я использую это сам, он работает.
создайте файл с именем mongostop.летучая мышь!--2-->
сохранить в нем следующий код
mongo admin --eval "db.shutdownServer()"
запустите файл mongostop.bat и вы успешно монго остановились
из приведенных команд я думаю, что вы на 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
Я использую этот скрипт запуска на 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 зарегистрирован как сервис.