¿Cuál es la forma correcta de garantizar que "mongod" se inicie al iniciar el sistema en 16.04?

¿Cuál es la forma correcta de garantizar que "mongod" se inicie al iniciar el sistema en 16.04?

Instalé MongoDB a través del centro de software en Ubuntu 16.04:

mongodb 1:2.6.10-0ubuntu1

Yo creoesteActualmente contiene MongoDB 2.6.10.

Estoy ejecutando una aplicación en la configuración localhost de Apache2 y tengo que iniciarla mongodmanualmente cada vez que el sistema inicia con:

mongod

Quiero que se inicie automáticamente.

Me he encontrado con dos métodos principales para hacer esto:

update-rc.d mongodb defaults

de: https://askubuntu.com/a/89914/367134

lo que resulta en:

update-rc.d mongodb defaults
insserv: fopen(.depend.stop): Permission denied

Pero esto no produjo error:

sudo update-rc.d mongodb defaults

También he visto algunas referencias para editar el "archivo de configuración de MongoDB", pero no estoy seguro de a qué se refiere, ya que puedo ver archivos de configuración en más de una ubicación:

  • /etc/mongodb.conf
  • /etc/init/mongodb.conf
  • /etc/init.d/mongodb

Y, una vez en el archivo correcto, no estoy seguro de qué cambiar allí.

En /etc/init/mongodb.confpuedo ver:

start on runlevel [2345]
stop on runlevel [!2345]

¿Cuál es la forma correcta de garantizar mongodque se inicie al iniciar el sistema en 16.04?

He estado leyendoeste, y miró hacia adentro /etc/rc2.dy pudo ver:

S01mongodb@                       --> /etc/init.d/mongodb

Actualizar:

Después de ejecutar la sugerencia:

sudo systemctl enable mongodb

y luego reiniciando, ejecutando systemctl status mongodbdevuelve:

* mongodb.service - An object/document-oriented database
   Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2016-04-18 23:42:28 AEST; 7min ago
     Docs: man:mongod(1)
  Process: 655 ExecStart=/usr/bin/mongod --config /etc/mongodb.conf (code=exited, status=100)
 Main PID: 655 (code=exited, status=100)

Apr 18 23:42:27 me-comp systemd[1]: Started An object/document-oriented database
Apr 18 23:42:28 me-comp systemd[1]: mongodb.service: Main process exited, code=exited, status=100/n/a
Apr 18 23:42:28 me-comp systemd[1]: mongodb.service: Unit entered failed state.
Apr 18 23:42:28 me-comp systemd[1]: mongodb.service: Failed with result 'exit-code'.  

Solución de problemas de permisos

/var/lib/mongodb= drwxr-xr-x mongodb mongodb.
/var/log/mongodb= drwxr-xr-x mongodb mongodb.
/var/log/mongodb/mongodb.log= -rw-r--r-- mongodb nogroup.
/var/log/mongodb/mongod.log= -rw-r--r-- mongodb mongodb.
/data/db/mongod.lock= -rwxrwxr-x me mey 0 bytes.
/data= drwxr-xr-x root root.
/data/db= drwxr-xr-x me root.

Contenido del archivo de configuración

/etc/mongodb.conf:

# Where to store the data.
dbpath=/var/lib/mongodb

#where to log
logpath=/var/log/mongodb/mongodb.log

logappend=true

bind_ip = 127.0.0.1
#port = 27017 ...

Respuesta1

Instalación

Este es el método que terminé usando (del comentario del usuario Adam C sobre: ​​usar una versión más actualizada de mongodb). A mí me funcionó pero no soy una autoridad en el tema.

https://askubuntu.com/a/757385/367134

Luego tuve que crear un archivo de servicio, ver:

https://askubuntu.com/a/694226/367134

Y edite la ruta en ese archivo de servicio desde:

/etc/mongodb.conf 

a:

/etc/mongod.conf

Y luego haga que mongodb se inicie al iniciar el sistema con:

sudo systemctl enable mongodb

ver:

https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units

Ahora mongodb se inicia con el inicio del sistema 16.04.

Desinstalar el antiguo MongoDB

AntesLo hice, sin embargo, tuve que eliminar las instalaciones y directorios existentes, lo cual me gustó de esta manera (pasos principalmente dehttps://askubuntu.com/a/497144/367134):

# go to /etc/apt/sources.list.d and remove any mongodb lists, then:

# sanity check - see what is installed
sudo dpkg -l | grep mongo

# remove all packages 
sudo apt-get remove mongodb* --purge
sudo apt-get autoremove

# remove old directories
sudo rm -r -f /var/lib/mongodb/
sudo rm -r -f /var/log/mongodb/

Respuesta2

Mientras desarrolla, es posible que a veces también desee lo contrario: tener múltiples instancias locales separables que inicie individualmente, en lugar de una instalación global...

mongod --dbpath ./mongo_db_data/ --logpath ./mongo_logs/mongodb.log --port 12345

Respuesta3

Para mi funciona solo haciendosudo systemctl enable mongod

Respuesta4

Para mí, se debe al permiso incorrecto de la ruta de base de datos. justo

chown mongodb:mongodb /var/lib/mongodb

información relacionada