![Qual é a maneira correta de garantir que o `mongod` seja iniciado na inicialização do sistema em 16.04?](https://rvso.com/image/1087117/Qual%20%C3%A9%20a%20maneira%20correta%20de%20garantir%20que%20o%20%60mongod%60%20seja%20iniciado%20na%20inicializa%C3%A7%C3%A3o%20do%20sistema%20em%2016.04%3F.png)
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 mongod
manualmente 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.conf
eu posso ver:
start on runlevel [2345]
stop on runlevel [!2345]
Qual é a maneira correta de garantir mongod
o início da inicialização do sistema em 16.04?
Eu estive lendoesse, e olhei /etc/rc2.d
e pude ver:
S01mongodb@ --> /etc/init.d/mongodb
Atualizar:
Depois de executar a sugestão:
sudo systemctl enable mongodb
e depois reiniciando, executando systemctl status mongodb
retorna:
* 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 ...
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:
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