HOWTO · MongoDB

Apagar/Detener MongoDB

Este artículo explica los diversos métodos para cerrar MongoDB.

En esta página

La forma adecuada de detener MongoDB depende de cómo se administre el servidor. Use el shell de la base de datos si puede conectarse al servidor, los controles de servicio del sistema operativo si la implementación se administra como un servicio y el terminal de control si mongod se ejecuta en primer plano. Las señales de proceso son el último recurso, ya que pueden detener el proceso equivocado o interrumpir un apagado ordenado. Elija el método que corresponda a la forma en que se inició esta instancia.

Elija el método de apagado según su implementación

Primero, identifique cómo se ejecuta el servidor de destino. Si un administrador o una herramienta de implementación lo gestiona como un servicio, use ese mismo administrador de servicios. Si inició mongod desde un terminal, deténgalo desde allí. Si tiene una conexión autorizada al shell de la base de datos, use el método de apagado desde el shell que se describe más adelante. No combine métodos sin cuidado: por ejemplo, detener directamente un proceso administrado como servicio puede dejar desincronizada la información que el administrador tiene sobre el servicio.

Antes de actuar, asegúrese de haber identificado la instancia de MongoDB prevista y de contar con el acceso que requiere su implementación. Este artículo no establece comandos concretos para iniciar el shell, nombres de servicios, comandos del sistema operativo ni requisitos de acceso. Estos varían según el entorno y deben comprobarse en su configuración.

Apague MongoDB desde el shell de la base de datos

Use db.shutdownServer() desde un shell de la base de datos para solicitar el apagado. Antes de hacerlo, confirme cómo iniciar el shell y conectarse en su implementación, verifique que la conexión se dirija al servidor previsto y tenga los permisos necesarios, y compruebe que el método sea compatible con la sintaxis de su versión de MongoDB.

Una solicitud desde el shell resulta útil cuando necesita detener un servidor mediante su interfaz de base de datos en lugar del administrador de servicios del sistema operativo. Si la solicitud no llega al servidor previsto o no está autorizada, no recurra de inmediato a un comando general para terminar procesos. Revise la configuración de conexión y acceso de la implementación, o use la vía de control encargada de administrar esa instancia.

Detenga un servicio de MongoDB con el sistema operativo

En una implementación administrada como servicio, use los controles de servicio del sistema operativo y la identidad de servicio configurada en ese host. El comando exacto y el nombre del servicio dependen del sistema y de la instalación; aquí no se establece ningún comando como vigente o universal. Consulte la configuración de servicios del host o a su administrador y, después, solicite la detención mediante ese administrador.

Así, la solicitud de apagado queda vinculada al servicio que inicia y supervisa MongoDB. No sustituya este método por un comando que termine procesos por nombre solo porque no conozca el comando del servicio. Si el administrador informa de un error, compruebe que eligió el servicio correcto y que tiene los permisos necesarios antes de probar otra vía de control.

Detenga un proceso mongod en primer plano

Cuando mongod esté conectado a un terminal que usted controla, deténgalo desde ese mismo terminal. Puede usar Ctrl+C solo si el terminal de control asigna esa combinación de teclas a una interrupción de este proceso en primer plano. Esto depende del terminal y de cómo inició mongod. Use el control disponible en ese entorno y espere a que el proceso termine; cerrar el terminal no sustituye una solicitud de apagado.

Este método corresponde a un proceso en primer plano; no se aplica automáticamente a un servicio ni a un proceso que se ejecuta en otra sesión. Si no tiene acceso al terminal, identifique el administrador real de la implementación antes de elegir otro método.

Use señales de proceso solo cuando no haya controles de apagado ordenado

Use una señal de proceso solo cuando no esté disponible la vía habitual del shell de la base de datos, del administrador de servicios o del terminal de control, y pueda identificar el proceso exacto mongod. Una señal enviada al PID equivocado puede terminar un programa que no guarda relación con la base de datos; los comandos generales basados en nombres pueden afectar a más de una instancia de MongoDB. No seleccione todos los procesos que coincidan con un nombre ni dé por sentado que una señal produce el mismo comportamiento de apagado en todas las implementaciones.

Si no puede identificar con seguridad el proceso previsto o determinar el efecto de la señal, deténgase y pida al administrador del sistema que use la vía de control configurada. No recurra a una terminación forzada solo porque una solicitud de apagado ordenado tarde en completarse; compruebe primero el estado mediante los controles propios de la implementación.

Verifique el apagado y resuelva problemas habituales

Confirme el resultado mediante la misma interfaz que administra la instancia: consulte el administrador de servicios si se trata de un servicio, el terminal de control si es un proceso en primer plano, o la vista de estado o de salud establecida para la implementación. Asegúrese de que el estado corresponda al servidor previsto. El hecho de haber emitido una solicitud no confirma por sí solo que se haya detenido la instancia correcta.

Si el servidor aún parece estar activo, compruebe que seleccionó la instancia correcta y que la vía de control elegida dispone del acceso necesario. Si el control habitual no está disponible, recurra a las indicaciones alternativas anteriores solo si se cumplen sus condiciones. Un apagado abrupto o incorrecto puede causar problemas, así que prefiera los controles de apagado ordenado de la implementación y evite terminar procesos que no haya identificado con certeza.