Могу ли я просто убить монго, чтобы остановить монго?
Я очень новичок в Монго. Я запускаю 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>
должны быть безопасными.