Iniciar y detener MongoDB está cubierto en el manual de MongoDB. Explica las diversas opciones de detener MongoDB a través del shell, cli, controladores, etc. También detalla los riesgos de detener incorrectamente MongoDB (como la corrupción de datos) y habla sobre las diferentes señales de muerte.
Además, si ha instalado MongoDB usando un administrador de paquetes para Ubuntu o Debian , puede detener mongodb (actualmente mongod en ubuntu) de la siguiente manera:
O en Mac OS X
O en sistemas basados en Red Hat :
O en Windows si ha instalado como un servicio llamado MongoDB
:
Y si no está instalado como un servicio (a partir de Windows 7+) puede ejecutar:
taskkill /f /im mongod.exe
Para obtener más información acerca de los problemas de un cierre no limpio, cómo evitarlo y qué hacer en caso de un cierre no limpio, consulte: Recuperar datos después de un cierre inesperado .
sudo service mongodb [start|stop|restart|status]
.sudo service stop mongodb
resultados en: detener: servicio no reconocidoSi literalmente quiere una línea equivalente a los comandos en su pregunta original, puede usar un alias:
mongo --eval "db.getSiblingDB('admin').shutdownServer()"
La respuesta de Mark al iniciar y detener MongoDB a través de los servicios es el enfoque administrativo más típico (y recomendado).
fuente
start C:\mongodb\bin\mongod.exe --config C:\net2\primary1-pc\mongod.cfg start C:\mongodb\bin\mongod.exe --config C:\net2\secondary1-pc\mongod.cfg ...
y luego tener shutdown.batC:\mongodb\bin\mongo.exe --eval "db.getSiblingDB('admin').shutdownServer()" --port 27017 C:\mongodb\bin\mongo.exe --eval "db.getSiblingDB('admin').shutdownServer()" --port 27018 C:\mongodb\bin\mongo.exe --eval "db.getSiblingDB('admin').shutdownServer()" --port 27019 ...
net stop MongoDB
no era fiable, por lo que utiliza algo similar:mongo admin --eval "db.shutdownServer()"
. ¡Salud!mongod --dbpath /path/to/your/db --shutdown
Más información en oficial: http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/
fuente
mongod v3.4.10
:Error parsing command line: unrecognised option '--shutdown'
:-(db.shutdownServer({force:1,timeoutSecs:0})
lo que inhibiría el vaciado de los datos restantes a las secundarias. Es posible que no siempre quieras eso.Si el servidor se ejecuta como el proceso de primer plano en una terminal, esto se puede hacer presionando
Otra forma de cerrar limpiamente un servidor en ejecución es usar el comando shutdown,
De lo contrario, se puede usar un comando como kill para enviar la señal. Si mongod tiene 10014 como su PID, el comando sería
fuente
Seguí la documentación oficial de MongoDB para detenerme con las señales. Se puede usar uno de los siguientes comandos (PID representa el
Process ID
delmongod
proceso):que envía la señal 15 (SIGTERM), o
que envía la señal 2 (SIGINT).
Si tiene más de una instancia ejecutándose o no le importa el PID, puede usar
pkill
para enviar la señal a todos losmongod
procesos en ejecución :o
o, mucho más seguro, solo a los procesos que le pertenecen:
o
Nota de PS : recurrí a esta opción porque
mongod --shutdown
, aunque se menciona en la documentación actual de MongoDB , curiosamente no funciona en mi máquina (macOS, mongodb v3.4.10, instalado conhomebrew
):Error parsing command line: unrecognised option '--shutdown'
PPS
(específico de macOS) Antes de que alguien se pregunte: no, no pude detenerlo con el comando
brew services stop mongodb
porque no lo comencé con
brew services start mongodb
.Había comenzado
mongod
con una línea de comando personalizada :-)fuente
Utilizar
mongod --shutdown
Según el documento oficial: manage-mongodb-projects /
:RE
fuente
Mi caso especial es:
previamente iniciar mongod por:
ahora, quiero parar
mongod
.y consulte el documento oficial Stop mongod Processes , ha intentado:
(1)
shutdownServer
pero falló:(2)
--shutdown
aún falló:(3) comando de inicio anterior agregando --shutdown:
(4) usar
service
para detener:y
mostrar esperado
Active: inactive (dead)
pero enmongod
realidad todavía en ejecución, ya que puede ver el proceso desde ps:y finalmente , realmente pare a mongod por:
hasta ahora, causa raíz: aún desconocida ...
Espero que la solución anterior sea útil para usted.
fuente
crear un archivo llamado mongostop.bat
guardar el siguiente código en él
ejecuta el archivo mongostop.bat y con éxito has detenido a mongo
fuente
Uno delinea para iniciar o detener el servicio mongodb usando la línea de comando;
NET START MONGODB
NET STOP MONGODB
Lo uso yo mismo, funciona.
fuente
De los comandos dados, creo que estás en Linux.
Inicie MongoDB:
Verifique el estado:
Detener MongoDB:
fuente
Sobre la base de la respuesta de stennie:
Descubrí que Mongo intentaba volver a conectarse a la base de datos después de que se cerró el servidor, lo que provocaría un retraso y mensajes de error. Agregar quit () después del apagado lo acelera y reduce los mensajes, pero todavía hay uno.
También quiero agregar contexto: estoy comenzando y deteniendo mongod como parte de los casos de prueba para otro código, por lo que registrarme como servicio no se ajusta al caso de uso. Espero terminar con algo que se ejecute en todas las plataformas (esto está probado en Windows en este momento). Estoy usando mongod 3.6.9
fuente
Simplemente hice:
quit();
Tenga en cuenta que estoy usando mongo 3.0.
Mongo
fuente
en la ventana de terminal en tu mac, presiona control + c
fuente
Usando homebrew (forma recomendada):
Para comenzar:
brew services start mongodb-community
Para detener:
brew services stop mongodb-community
fuente
Yo uso este script de inicio en Ubuntu.
fuente
Ventanas
En PowerShell, es:
Stop-Service MongoDB
Luego, para comenzar de nuevo:
Start-Service MongoDB
Para verificar si se ha empezado, ejecute:
net start | findstr MongoDB
.Nota: arriba se supone que MongoDB está registrado como un servicio .
fuente
Aproveche el Administrador de tareas proporcionado por su sistema operativo para obtener una solución rápida y fácil. A continuación se muestra la captura de pantalla de / para Windows 10. Haga clic derecho en el proceso resaltado y seleccione detener . Seleccione inicio , si ya se detuvo.
Nota: internamente, los comandos están haciendo lo mismo que usted tiene que hacer manualmente usando una GUI (Administrador de tareas), proporcionada por Windows / su sistema operativo. Sin embargo, este enfoque se utilizará con el propósito de estudiar / practicar para comenzar y no será bloqueado debido a esto.
fuente
CTRL + C
en la línea de comando de windows
fuente