Execute o serviço MongoDB como daemon do SystemD no Ubuntu 15.10

9

O MongoDB apenas suporta versões do Ubuntu Long Term Support (LTS). O último é o Ubuntu 14.04 LTS, onde o processo de inicialização é gerenciado pela Upstart proprietária da Canonical. No entanto, estou usando o Ubuntu 15.10 com o processo init SystemD padrão do Linux. Portanto, não consigo iniciar o serviço do MongoDB durante a inicialização.

Quando eu leio o status do serviço ou inicio, mostre a mensagem "falha ao carregar":

> systemctl status mongod
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
> sudo systemctl start mongod
Failed to start mongod.service: Unit mongod.service failed to load: No such file or directory.

Estou executando o MongoDB 3.2 Community Edition oficial (mongodb-org) do link não o meta-pacote MongoDB 2.6 (mongodb) do repositório do Ubuntu.

> sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
> 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
> sudo apt-get update
> sudo apt-get install -y mongodb-org

Alguém sabe como iniciar o MongoDB com o SystemD?

    
por Fernando Santucci 22.03.2016 / 02:39

2 respostas

15

Eu consegui iniciar o serviço MongoDB com o SystemD na inicialização:

Eu desinstalei o meta-pacote oficial (mongodb-org) v3.2, então eu instalei o meta-pacote (mongodb) v2.6 do repositório do Ubuntu:

> sudo apt-get remove mongodb-org
> sudo apt-get install mongodb

Crie o arquivo de configuração do serviço conforme mostrado abaixo:

> cd /lib/systemd/system
> sudo touch mongodb.service
> sudo nano mongodb.service
[Unit]
Description=An object/document-oriented database
Documentation=man:mongod(1)
After=network.target

[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongodb.conf

[Install]
WantedBy=multi-user.target

Verifique na lista se o serviço está ativado ou desativado usando o comando abaixo:

> systemctl list-unit-files --type=service
...
mongodb.service             disabled
...

Se estiver desativado ou não na lista, ative-o:

> sudo systemctl enable mongodb.service

Verifique novamente:

> systemctl list-unit-files --type=service 
...
mongodb.service             enabled
...

Agora você pode gerenciar o serviço no processo de inicialização do SystemD:

> systemctl status mongodb
> sudo systemctl stop mongodb
> sudo systemctl start mongodb
> sudo systemctl restart mongodb

Aproveite!

    
por Fernando Santucci 22.03.2016 / 03:09
5

Na instalação padrão do repositório do MongoDB, para ter a inicialização automática do serviço mongod , tudo o que você precisa fazer é ativar o serviço system.d:

systemctl enable mongod.service (preste atenção ao nome do serviço mongo d , não mongodb )

NOTA: isto é testado em ambos Debian / GNU Jessie 8.x com systemd e Ubuntu Xerus 16.04 LTS.

    
por stamster 23.11.2016 / 14:58