Ejecutando mongodb en ubuntu 16.04 LTS


¿Cómo puedo ejecutar Mongodb, como servicio, en Ubuntu 16.04 LTS? Hace unos días tuve actualizar mi servidor a Ubuntu 16.04. He notado que el servicio my MongoDB no se inicia cuando reinicio. Tratando de usar

sudo initctl start mongod

No hizo el truco. ¿Alguien tiene una idea de cómo resolver esto?

Author: Sagi Forbes, 2016-05-03

4 answers

Cualquiera que actualice o instale Ubuntu 16.04 ( también conocido como Ubuntu Xenial xerus ) notó que algunos de los servicios antiguos dejaron de ejecutarse. Este problema se conoce a partir de la versión 15.04, pero me centraré en la versión anterior.

Tal fue mi caso con MongoDB. Para hacer una historia larga, corta, Ubuntu cambió de advenedizo a systemd. Una solución común, a estos problemas, es cambiar de nuevo a advenedizo. No considero que esa opción sea una solución real, desde luego no a largo plazo.

Una solución real ( IMHO ) al problema es escribir el script systemd que iniciará MongodDB. Desafortunadamente, los chicos de MongoDB aún no habían suministrado uno.

Así que tuve que escribir uno desde cero. Para crear uno de los suyos siga estos pasos:

  1. cambiar a root usando
    sudo su
    

O use sudo para todos los pasos siguientes.

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

    nano /lib/systemd/system/mongodb.service
    
  2. Archivo el contenido 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.servicio
Aquí hay una breve descripción de los campos importantes:
ExecStart - Es el comando a ejecutar. Mongo se instala en /usr / bin y el archivo de configuración está escrito en /etc
User - El uid del proceso mongod.
Group - El gid del proceso mongod. Tenga en cuenta que el usuario y el grupo son creados por el instalación.

Ahora para comenzar 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
 65
Author: Sagi Forbes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-07 18:43:41

La última versión de MongoDB hace la mayoría de las cosas excepto una cosa por ahora. Después de instalar MongoDB en Ubuntu 16.04.x , ejecute los comandos de la siguiente manera:

$ sudo systemctl enable mongod.service
$ sudo systemctl daemon-reload

Ahora lo más probable es que mongod se inicie automáticamente en cada arranque.


Esta solución también funciona en caso de obtener este error:

No se pudo iniciar mongod.servicio: Unidad mongod.servicio no encontrado.

Después de ejecutar los comandos anteriores, los comandos de abajo comienzan a trabajo:

$ sudo service mongod start
$ mongo

Del mismo modo, todos los servicios instalados deben estar habilitados para ejecutarse. Por ejemplo, después de la instalación del Administrador de Operaciones (también conocido como MMS), la documentación dice que ejecute el commend a continuación.

Start sudo systemctl start mongodb-mms.servicio

Lo más probable es que Ubuntu no inicie el servicio. Porque aún no está habilitado. Para habilitarlo simplemente ejecute el siguiente comando:

$ sudo systemctl enable mongodb-mms.service
$ sudo systemctl daemon-reload

Luego intente iniciar el servicio:

$ sudo systemctl enable mongodb-mms.service

Eso es todo...

 30
Author: efkan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-13 06:15:16

Para Las Personas Que Quieren Una Nueva Instalación

He estado luchando con esto durante 1 hora. Entonces encontré esta página Instalar es tan fácil como hacer:

sudo apt-get update
sudo apt-get install mongodb

Luego para comprobar si todo funciona:

sudo service mongodb status

Hágame saber si esto funciona para usted!

 22
Author: Nicola Pedretti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-05 01:51:10

Los paquetes para 3.2+ contienen scripts de inicio.

Primero, siga las instrucciones oficiales para instalar :

# If you installed the ubuntu package, remove it, if not skip to key import
sudo apt-get remove mongodb
sudo apt-get autoremove
# import key
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
# add trusty repos
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
# update apt
sudo apt-get update
# install the package
sudo apt-get install -y mongodb-org

Luego desenmascare el trabajo mongodb.service (y habilítelo e inicie). Creo que fue enmascarado porque el paquete incluye un trabajo advenedizo también, por lo que no querría que ambos comenzaran. En nuestro caso, sin embargo, esto es claramente lo que queremos.

sudo systemctl unmask mongodb
sudo service mongodb enable
sudo service mongodb start

Referencias:

Cuestión relevante de JIRA

Pregunta relacionada sobre Preguntar Ubuntu

 20
Author: Hut8,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-13 12:22:42