Cualquiera que haya actualizado o instalado Ubuntu 16.04 (también conocido como Ubuntu Xenial xerus) notó que algunos de los servicios antiguos dejaron de ejecutarse. Este problema se conoce desde la versión 15.04, pero me centraré en la versión anterior.
Tal fue mi caso con MongoDB. Para resumir, Ubuntu cambió de advenedizo a systemd. Una solución común a estos problemas es volver a ser advenedizo. No considero esa opción como una solución real, ciertamente no a largo plazo.
Una solución real (en mi humilde opinión) al problema es escribir un script systemd que iniciará MongodDB. Desafortunadamente, los chicos de MongoDB aún no habían proporcionado uno.
Así que tuve que escribir uno desde cero. Para crear uno propio, siga estos pasos:
- cambiar a raíz usando
sudo su
o use sudo para todos los pasos siguientes.
-
cree un script de servicio (en este ejemplo, el nombre del servicio es Mongodb)
nano /lib/systemd/system/mongodb.service
-
El contenido del archivo debe ser
[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 [Install] WantedBy=multi-user.target
También puede descargar el archivo desde aquí:mongodb.service
Esta es una breve descripción de los campos importantes:
ExecStart - Es el comando para ejecutar. Mongo se instala en /usr/bin y el archivo de configuración se escribe en /etc
Usuario - El uid del proceso mongod.
Grupo - El gid del proceso mongod. Tenga en cuenta que el usuario y el grupo son creados por la instalación.
Ahora para iniciar mongodb:
sudo systemctl start mongodb
Para detener el uso del servicio mongodb:
sudo systemctl stop mongodb
Para habilitar mongodb al inicio
sudo systemctl enable mongodb.service
Si necesita actualizar los servicios, use:
sudo systemctl daemon-reload