¿Cómo iniciar el servidor MongoDB al iniciar el sistema?


86

Tengo que iniciar mi servidor MongoDB cada vez que se reinicia el sistema. ¿Cómo lo configuro para comenzar con mi sistema operativo? Estoy en Ubuntu 11.04.


1
Me pregunto por qué nadie recomienda usar advenedizo aquí.
Tom

Respuestas:


133

Tuve el mismo "problema" en Debian jessie, y mi solución simple es:

systemctl enable mongod.service

Creo que en Ubuntu es lo mismo.

- EDITAR -

Según los comentarios, también funciona en Ubuntu. En Ubuntu 18.04 LTS parece ser esta solución:

systemctl enable mongodb.service

Gracias a @Adam. Tal vez cambiaron el nombre del servicio.


10
Trabajado para mí enUbuntu Mate 16.04.2 LTS
Muhammad Gelbana

2
Lástima que no hay información en la documentación oficial sobre cómo iniciar el servicio.
UpTheCreek

2
puede necesitar (sudo) systemctl start mongodiniciar el servicio mongd
Jeff Xiao

2
También funciona en ubuntu 18.04 LTS
89n3ur0n

1
Solo funciona para mí si cambio mongod.servicea mongodb.serviceUbuntu 18.04 LTS - ¿extraño?
Adam

37

Si instala MongoDB utilizando la Herramienta de empaquetado avanzada (apt), configurará sus scripts de inicio para ejecutar Mongo automáticamente cuando se inicie el sistema.

Los pasos son los siguientes: primero configure apt para poder descargar el paquete Mongo:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
sudo nano /etc/apt/sources.list

Agregue esta línea a sources.list y luego guarde:

deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen

Luego descargue e instale Mongo con la utilidad apt-get :

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mongodb-10gen

Si desea realizar cambios en la configuración, edite su mongodb.conf y reinicie: 

sudo nano /etc/mongodb.conf
sudo service mongod restart

55
Si luego desea cambiarlo para no iniciar MongoDB automáticamente al inicio, edite /etc/init/mongodb.conf.
kynan

11

El control de todos los enlaces de servicio init.d debe hacerse con la herramienta update-rc.d

es decir, para activar el demonio mongod en los niveles de ejecución predeterminados (es decir, activarlo en el arranque):

update-rc.d mongodb defaults

Consulte https://help.ubuntu.com/community/UbuntuBootupHowto para obtener más información. Este enlace le dice todo lo que desea saber sobre cómo configurar programas en el arranque.


2
La distribución 10gen MongoDB no utiliza scripts de inicio de estilo System-V, debe editarlos /etc/init/mongodb.conf.
kynan

¿Necesito hacer esto?
tofutim

5

Si ha instalado MongoDB Community Edition (que es la forma recomendada ya que recibe actualizaciones más frecuentes que el paquete distribuido en el repositorio de paquetes de Ubuntu), configure el comportamiento de inicio / detención amongod través del script de inicio /etc/init/mongod.conf , que por defecto inicia el demonio automáticamente en el arranque

start on runlevel [2345]
stop on runlevel [06]

Si no desea que se inicie automáticamente, reemplace esas 2 líneas con

stop on runlevel [023456]

¿Esto iniciará el servidor antes de que alguien inicie sesión en el sistema?
Gabriel Fair

@GabrielFair Sí
kynan

5

Estoy usando crontab para Ubuntu. Funciona bien. Para poder editar el archivo

Sudo crontab –e 

Agregue esta línea al archivo

@reboot sudo service mongod start &

El suspiro "&" al final lo ayuda a trabajar en segundo plano.

Ctrl+ xpara salir, presione "Y" una vez que se le solicite. Y mantenga el nombre del archivo como "crontab".


3

Si tiene Ubuntu 16.04 LTS, puede habilitar mongo para iniciar el arranque escribiendo esto en su consola:
sudo systemctl enable mongod
he utilizado este enfoque con MongoDB Community Edition 3.6 y funciona. Reinicie su máquina y pruebe si mongo se está ejecutando escribiendo:
sudo service mongod status


3

Puede usar el comando systemctl para habilitar su servicio mongo en la ejecución en el arranque del sistema.

Crea un servicio tal que

sudo nano /etc/systemd/system/mongodb.service

Colocar contenido en el archivo

[Unit]
Description=MongoDB Database Service
Wants=network.target
After=network.target

[Service]
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
User=mongodb
Group=mongodb
StandardOutput=syslog
StandardError=syslog

después de eso podrás usar comandos de servicio como

sudo service mongod start|stop|restart

y luego, si desea recuperarlo al iniciar la máquina, puede crear un archivo mongod en /etc/init.d/


1

chkconfig --levels 235 mongod on?

donde mongodb es el nombre de tu servicio


2
La distribución 10gen MongoDB no usa scripts de inicio de estilo System-V de forma predeterminada (aunque se proporciona uno), edite en su /etc/init/mongodb.conflugar.
kynan

@kynan ¿Cómo editarlo? ¿Qué cambio / agrego al archivo mongod.conf?
Kieveli

@Kieveli: mira esta respuesta
kynan

1

Siempre he usado esta publicación como punto de partida para poner en funcionamiento una nueva plataforma de fragmentación. Incluye una sección sobre configuración de arranque que también he usado.

http://joslynesser.com/blog/archives/2010/09/28/mongodb-sharding-guide-server-setup-on-ubuntu-ec2/


1
No publique "solo enlaces externos". Es posible que el enlace externo se caiga en el futuro y esta respuesta sería incompleta. Además del enlace, publique la parte relevante del artículo aquí: por ejemplo. publicar la parte que muestra "¿Cómo iniciar el servidor MongoDB al iniciar el sistema?" usando advenedizo.
manipulado el

1

Si instala MongoDB apt-getcomo se describe en la guía de instalación de MongoDB Ubuntu , vendrá con un script de inicio básico y un archivo de configuración. (se recomienda el uso de un archivo de configuración)

También puede consultar aquí una publicación antigua que se vincula a un init.dscript.

En cualquier caso, la premisa básica es que está configurando un servicio y luego configurándolo para iniciar y detener con la computadora. Esta es una técnica bastante común para los servidores, hay muchos tutoriales para hacer exactamente esto.


2
ya no es el caso en 16.04
chovy
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.