![¿Cuál es la forma correcta de garantizar que "mongod" se inicie al iniciar el sistema en 16.04?](https://rvso.com/image/1087117/%C2%BFCu%C3%A1l%20es%20la%20forma%20correcta%20de%20garantizar%20que%20%22mongod%22%20se%20inicie%20al%20iniciar%20el%20sistema%20en%2016.04%3F.png)
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 mongod
manualmente 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.conf
puedo ver:
start on runlevel [2345]
stop on runlevel [!2345]
¿Cuál es la forma correcta de garantizar mongod
que se inicie al iniciar el sistema en 16.04?
He estado leyendoeste, y miró hacia adentro /etc/rc2.d
y pudo ver:
S01mongodb@ --> /etc/init.d/mongodb
Actualizar:
Después de ejecutar la sugerencia:
sudo systemctl enable mongodb
y luego reiniciando, ejecutando systemctl status mongodb
devuelve:
* 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 me
y 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:
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