Могу ли я просто убить монго, чтобы остановить монго?

Я очень новичок в Монго. Я запускаю mongod, как описано здесь в Mac OS X. Я запускаю два процесса mongod из командной строки. Если мне нужно остановить процессы mongod, я просто выполнил kill <pid of mongod>. Это рекомендуемый способ остановки mongod?

Ответы

Ответ 1

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

Esan-iMac:~$mongo admin --eval "db.shutdownServer()"

MongoDB shell version: 2.6.4
connecting to: admin
2015-02-19T10:54:22.574+0200 DBClientCursor::init call() failed
server should be down...

Он дает некоторые нечетные сообщения, но он работает.

И я сделал команду alias для упрощения ее запуска.

alias stop-mongo='/opt/mongo/release/bin/mongo admin --eval "db.shutdownServer()"'

Это работает, по крайней мере, если вы запускаете свой монго вручную (например, с опцией --fork).

Ответ 2

Наконец-то это удалось (Ubuntu 15.04) с

//процесс 1.find по имени:

$ pgrep mongo

1350

//2.kill mongod-process

$ kill 1350

Ответ 3

Принятый ответ Эсы правильный. Также, рекомендуется ли использовать kill - да, но с флагом -2 или без флага никогда не используйте -9. Как упоминалось в docs.

kill -2 `pgrep mongo`

Алиас

alias stopmongo='kill -2 `pgrep mongo`'

Ответ 4

Окно

use admin
db.shutdownServer()

Для систем с включенной авторизацией пользователи могут выдавать только db.shutdownServer() при аутентификации в базу данных администратора или через интерфейс localhost в системах без аутентификации.

Linux

mongod --shutdown

вы также можете использовать

kill <mongod process ID> 

см. http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/

Ответ 5

Самый простой способ - Ctrl + C, который работал у меня на блокирующей оболочке bash под El Capitan.

Ответ 6

Только что столкнулся с проблемой "просто убить mongod" в Mac...

  • Мангод работает как служба "launchctl" в Mac-системах. "просто убивая", это убьет эту услугу.

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

  • Другой альтернативой является остановка системы и запуск снова.

Лучший способ:

Начните использовать launchctl для управления такими службами. Вот пример для этого:

Каков правильный способ запуска службы mongod в linux/OS X?

Ответ 7

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

find / -name "mongodb.plist" или locate "mongodb.plist"

После того, как файл найден, удалите конфигурацию автозапуска с помощью (вы можете попробовать без sudo сначала, это не нужно, если вы сделали установку с помощью Homebrew):

sudo launchctl unload -w <file>

Если вы все равно хотите убить процесс и не используете автозапуск, не забудьте использовать kill -9 <PID>, он может повредить db. kill -1 <PID> или kill -15 <PID> должны быть безопасными.