Qual é a maneira correta de garantir que o `mongod` seja iniciado na inicialização do sistema em 16.04?

Qual é a maneira correta de garantir que o `mongod` seja iniciado na inicialização do sistema em 16.04?

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

mongodb 1:2.6.10-0ubuntu1

Eu acreditoesseatualmente contém MongoDB 2.6.10.

Estou executando um aplicativo na configuração do host local do Apache2 e preciso iniciar mongodmanualmente sempre que o sistema for iniciado com:

mongod

Quero que comece automaticamente.

Encontrei dois métodos principais para fazer isso:

update-rc.d mongodb defaults

de: https://askubuntu.com/a/89914/367134

o que resulta em:

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

Mas isso não produziu erro:

sudo update-rc.d mongodb defaults

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, pois posso ver os 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 nele.

Em /etc/init/mongodb.confeu posso ver:

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

Qual é a maneira correta de garantir mongodo início da inicialização do sistema em 16.04?

Eu estive lendoesse, e olhei /etc/rc2.de pude ver:

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

Atualizar:

Depois de executar a sugestão:

sudo systemctl enable mongodb

e depois reiniciando, executando systemctl status mongodbretorna:

* 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 mee 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 ...

Responder1

Instalando

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

https://askubuntu.com/a/757385/367134

Aí tive que fazer um arquivo de serviço, veja:

https://askubuntu.com/a/694226/367134

E edite o caminho nesse arquivo de serviço em:

/etc/mongodb.conf 

para:

/etc/mongod.conf

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

sudo systemctl enable mongodb

ver:

https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units

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

Desinstalando o antigo MongoDB

AntesEu fiz isso, no entanto, tive que remover as instalações e diretórios existentes, o que fiz assim (etapas principalmente dehttps://askubuntu.com/a/497144/367134):

# 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/

Responder2

Enquanto você está desenvolvendo, às vezes você também pode querer o oposto: ter várias instâncias locais separáveis ​​que você inicia individualmente, em vez de uma instalação global...

mongod --dbpath ./mongo_db_data/ --logpath ./mongo_logs/mongodb.log --port 12345

Responder3

Pra mim funciona só fazendosudo systemctl enable mongod

Responder4

Para mim, é por causa da permissão errada do caminho do banco de dados. apenas

chown mongodb:mongodb /var/lib/mongodb

informação relacionada