Qual é a maneira correta de garantir que o 'mongod' inicie na inicialização do sistema em 16.04?

6

Eu instalei o MongoDB através do centro de software no Ubuntu 16.04:

mongodb 1:2.6.10-0ubuntu1

Eu acredito que este atualmente contém o MongoDB 2.6.10.

Estou executando um aplicativo na configuração de localhost do apache2 e tenho que iniciar mongod manualmente toda vez que o sistema iniciar com:

mongod

Eu quero que ele comece automaticamente.

Eu me deparei com dois métodos principais para fazer isso:

update-rc.d mongodb defaults

de: link

que resulta em:

update-rc.d mongodb defaults
insserv: fopen(.depend.stop): Permission denied

Mas isso não produziu erros:

sudo update-rc.d mongodb defaults

Eu também vi algumas referências para editar o "arquivo de configuração do MongoDB", mas não tenho certeza do que isso se refere, já que posso ver arquivos de configuração em mais de um local:

  • /etc/mongodb.conf
  • /etc/init/mongodb.conf
  • /etc/init.d/mongodb

E, uma vez no arquivo correto, não tenho certeza do que alterar lá.

Em /etc/init/mongodb.conf , posso ver:

start on runlevel [2345]
stop on runlevel [!2345]

Qual é a maneira correta de garantir que mongod comece na inicialização do sistema no 16.04?

Eu tenho lido este e parecido em /etc/rc2.d e pode ver:

S01mongodb@                       --> /etc/init.d/mongodb

Atualização:

Depois de executar a sugestão:

sudo systemctl enable mongodb

e, em seguida, reiniciar, executando systemctl status mongodb returns:

* mongodb.service - An object/document-oriented database
   Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2016-04-18 23:42:28 AEST; 7min ago
     Docs: man:mongod(1)
  Process: 655 ExecStart=/usr/bin/mongod --config /etc/mongodb.conf (code=exited, status=100)
 Main PID: 655 (code=exited, status=100)

Apr 18 23:42:27 me-comp systemd[1]: Started An object/document-oriented database
Apr 18 23:42:28 me-comp systemd[1]: mongodb.service: Main process exited, code=exited, status=100/n/a
Apr 18 23:42:28 me-comp systemd[1]: mongodb.service: Unit entered failed state.
Apr 18 23:42:28 me-comp systemd[1]: mongodb.service: Failed with result 'exit-code'.  

Solução de problemas de permissão

/var/lib/mongodb = drwxr-xr-x mongodb mongodb .
/var/log/mongodb = drwxr-xr-x mongodb mongodb .
/var/log/mongodb/mongodb.log = -rw-r--r-- mongodb nogroup .
/var/log/mongodb/mongod.log = -rw-r--r-- mongodb mongodb .
/data/db/mongod.lock = -rwxrwxr-x me me e 0 bytes.
/data = drwxr-xr-x root root .
/data/db = drwxr-xr-x me root .

Conteúdo do arquivo de configuração

/etc/mongodb.conf :

# Where to store the data.
dbpath=/var/lib/mongodb

#where to log
logpath=/var/log/mongodb/mongodb.log

logappend=true

bind_ip = 127.0.0.1
#port = 27017 ...
    
por user1063287 18.04.2016 / 15:25

4 respostas

4

Instalando

Este é o método que acabei usando (do comentário do usuário Adam C: usando uma versão mais atualizada do mongodb). Funcionou para mim, mas eu não sou uma autoridade sobre o assunto.

link

Então eu tive que fazer um arquivo de serviço, veja:

link

Edite o caminho nesse arquivo de serviço de:

/etc/mongodb.conf 

para:

/etc/mongod.conf

E faça o mongodb iniciar na inicialização do sistema com:

sudo systemctl enable mongodb

veja:

link

Agora o mongodb está iniciando na inicialização do sistema 16.04.

Desinstalando o MongoDB antigo

Antes eu fiz isso no entanto, eu tive que remover as instalações e diretórios existentes, o que eu fiz assim (passos principalmente de link ):

# go to /etc/apt/sources.list.d and remove any mongodb lists, then:

# sanity check - see what is installed
sudo dpkg -l | grep mongo

# remove all packages 
sudo apt-get remove mongodb* --purge
sudo apt-get autoremove

# remove old directories
sudo rm -r -f /var/lib/mongodb/
sudo rm -r -f /var/log/mongodb/
    
por user1063287 21.04.2016 / 09:59
0

Durante o desenvolvimento, você também pode querer o oposto: ter várias instâncias separáveis locais que você inicia individualmente, em vez de uma instalação global ...

mongod --dbpath ./mongo_db_data/ --logpath ./mongo_logs/mongodb.log --port 12345
    
por technicalbloke 11.05.2016 / 09:40
0

Para mim, funciona apenas com sudo systemctl enable mongod

    
por Pedro Vagner 08.08.2016 / 14:11
0

Para mim, é por causa da permissão incorreta do caminho db. apenas

chown mongodb:mongodb /var/lib/mongodb
    
por tim 08.07.2017 / 10:10

Tags