ventajas tutorial example desventajas descargar caracteristicas mongodb

mongodb - tutorial - Cómo detener mongo DB en un comando



mongodb ventajas y desventajas (14)

Necesito poder iniciar / detener MongoDB en el cli. Es bastante simple comenzar:

./mongod

Pero para detener mongo DB, necesito ejecutar primero mongo shell y luego escribir dos comandos:

$ ./mongo

use admin

db.shutdownServer ()

Así que no sé cómo detener mongo DB en una línea. ¿Alguna ayuda?


Windows

En PowerShell, es: Stop-Service MongoDB

Entonces para comenzarlo de nuevo: Start-Service MongoDB

Para verificar si se inició, ejecute: net start | findstr MongoDB net start | findstr MongoDB .

Nota: Más arriba asume que MongoDB está registrado como un servicio .


CTRL + C

en la línea de comandos de Windows


De los comandos dados, creo que estás en Linux.

Inicie MongoDB:

$ sudo service mongod start mongod start/running, process XXXXX

Verifica el estado:

$ sudo service mongod status mongod start/running, process XXXXX

Detener MongoDB:

$ sudo service mongod stop mongod stop/waiting


Seguí la documentación oficial de MongoDB para detenerme con señales. Se puede usar uno de los siguientes comandos (PID representa la Process ID del Process ID mongod ):

kill PID

que envía la señal 15 (SIGTERM), o

kill -2 PID

que envía la señal 2 (SIGINT).

Advertencia de la documentación de MongoDB :
Nunca use kill -9 (es decir, SIGKILL) para terminar una instancia de mongod .

Si tiene más de una instancia en ejecución o si no le importa el PID, puede usar pkill para enviar la señal a todos los procesos en ejecución de mongod :

pkill mongod

o

pkill -2 mongod

o, mucho más seguro, solo a los procesos que le pertenecen:

pkill -U $USER mongod

o

pkill -2 -U $USER mongod

PD
Nota: recurrí a esta opción porque mongod --shutdown , aunque mencionado en la documentación actual de MongoDB , curiosamente no funciona en mi máquina (macOS, mongodb v3.4.10, instalado con homebrew ):
Error parsing command line: unrecognised option ''--shutdown''

PPS
(MacOS específico) 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 .
Empecé mongod con una línea de comando personalizada :-)


Si el servidor se ejecuta como el proceso en primer plano en una terminal, esto se puede hacer presionando

Ctrl-C

Otra forma de cerrar limpiamente un servidor en ejecución es usar el comando shutdown,

> use admin > db.shutdownServer();

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

kill -2 10014


Si, literalmente, quieres una línea equivalente a los comandos en tu pregunta original, podrías alias:

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

La respuesta de Mark para iniciar y detener MongoDB a través de los servicios es el enfoque administrativo más típico (y recomendado).


Simplemente lo hice:

quit();

Tenga en cuenta que estoy usando mongo 3.0.

Mongo


Un liners para iniciar o detener el servicio de mongodb usando la línea de comando;

  1. Para comenzar el uso del servicio: NET START MONGODB
  2. Para detener el uso del servicio: NET STOP MONGODB

Yo uso esto yo mismo, funciona.



Uso este script de inicio en 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 $2}''` test -x $PROGRAM || exit 0 case "$1" 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


crea un archivo llamado mongostop.bat

guarda el siguiente código en él

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

ejecuta el archivo mongostop.bat y tienes mongo detenido con éxito


en la ventana de la terminal de tu mac, presiona control + c


Arrancar y detener MongoDB está cubierto en el manual de MongoDB. Explica las diversas opciones de detener MongoDB a través del shell, cli, drivers, etc. También detalla los riesgos de detener incorrectamente MongoDB (como corrupción de datos) y habla sobre las diferentes señales de muerte.

Además, si ha instalado MongoDB utilizando un administrador de paquetes para Ubuntu o Debian , puede detener mongodb (previamente mongod) de la siguiente manera:

  • Upstart: sudo service mongodb stop

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

O en Mac OS X

O en los sistemas basados ​​en Red Hat :

  • service mongod stop

O en Windows si se ha instalado como un servicio llamado MongoDB :

  • net stop 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 sucio, cómo evitar mejor dicho escenario y qué hacer en caso de un cierre no limpio, consulte: Recuperar datos después de un cierre inesperado .