Running mongodb on ubuntu 16.04 LTS

Como posso dirigir Mongodb, como um serviço, no Ubuntu 16.04 LTS? Há uns dias, actualizei o meu servidor para o Ubuntu 16.04. Reparei que o meu serviço MongoDB não começa quando reinicio. A tentar usar

sudo initctl start mongod
Não resultou. Alguém sabe como resolver isto?

Author: Sagi Forbes, 2016-05-03

4 answers

Qualquer pessoa que actualize ou instale o Ubuntu 16.04 ( também conhecido como Ubuntu Xenial xerus ) notou que alguns dos antigos serviços deixaram de funcionar. Esta edição é conhecida a partir da versão 15.04, mas eu vou focar na versão acima.

Esse era o meu caso com o MongoDB. Para fazer uma longa história, resumindo, Ubuntu mudou do início para systemd. Uma solução comum, para estes problemas, é voltar ao início. Não considero essa opção uma verdadeira solução, muito menos a longo prazo.

Uma solução real (IMHO) para o problema é escrever script systemd que irá iniciar o MongodDB. Infelizmente, os MongoDB ainda não tinham um.

Então tive de escrever uma do zero. Para criar um de seus próprios siga estes passos:
  1. mudar para o root usando
    sudo su
    

Ou usar o sudo para todos os passos seguintes.

  1. Crie um script de Serviço (neste exemplo o nome do serviço é Mongodb)

    nano /lib/systemd/system/mongodb.service
    
  2. Ficheiro o conteúdo deve 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
    

Você também pode baixar o arquivo a partir daqui: Mongodb.serviço
Aqui está uma descrição rápida dos campos importantes:
Executart - é o comando a executar. Mongo instala-se em /usr / bin e o ficheiro de configuração é escrito em /etc
utilizador - o uid do processo mongod.
Grupo - a IDG do processo mongod. Note que o utilizador e o grupo são criados pelo instalacao.

Agora para começar mongodb:
sudo systemctl start mongodb

Para parar a utilização do serviço mongodb:

sudo systemctl stop mongodb

Para activar o mongodb no arranque

sudo systemctl enable mongodb.service

Se precisar de actualizar os Serviços use:

 sudo systemctl daemon-reload
 65
Author: Sagi Forbes, 2016-06-07 18:43:41
A última versão do MongoDB faz a maioria das coisas, excepto uma coisa por agora. Depois de instalar o MongoDB em Ubuntu 16.04.x , Execute os comandos da seguinte forma::

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

Agora o mais provável mongod começa em cada arranque automaticamente.


Esta solução também funciona em caso de obter este erro:

Não foi possível iniciar mongod.serviço: unidade mongod.serviço não encontrado.

Depois de executar os comandos acima, os comandos abaixo começam a trabalho:

$ sudo service mongod start
$ mongo

Da mesma forma, todos os serviços instalados devem poder ser executados. Por exemplo, após a instalação do Ops Manager (também conhecido como MMS), a documentação diz para executar o commend abaixo.

$ Sudo systemctl iniciar mongodb-mms.serviço

O mais provável é que o Ubuntu não inicie o serviço. Porque ainda não está ativado. Para activar, basta executar o comando abaixo:

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

Depois tente iniciar o serviço:

$ sudo systemctl enable mongodb-mms.service
É tudo...
 30
Author: efkan, 2018-07-13 06:15:16

Para Pessoas Que Querem Uma Instalação Nova

Tenho lutado com isto há uma hora. Depois encontrei esta página. Instalar é tão fácil como fazer:
sudo apt-get update
sudo apt-get install mongodb

Depois verificar se tudo funciona:

sudo service mongodb status

Avisa-me se isto funcionar para ti!
 22
Author: Nicola Pedretti, 2016-07-05 01:51:10

Os pacotes dos 3. 2+ contêm programas de arranque.

Primeiro, siga as instruções oficiais 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

Depois desmascarar a tarefa mongodb.service (e activá-la e iniciá-la). Acredito que foi Mascarado porque o pacote inclui um trabalho inicial também, então você não iria querer que ambos começassem. No nosso caso, porém, é claramente isso que queremos.

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

Referências:

Questão JIRA relevante

Pergunta Conexa sobre Ask Ubuntu

 20
Author: Hut8, 2017-04-13 12:22:42