sql >> Base de Datos >  >> NoSQL >> MongoDB

Ejecutando mongodb en ubuntu 16.04 LTS

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:

  1. cambiar a raíz usando
    sudo su
    

o use sudo para todos los pasos siguientes.

  1. cree un script de servicio (en este ejemplo, el nombre del servicio es Mongodb)

    nano /lib/systemd/system/mongodb.service
    
  2. 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