O MongoDB suporta apenas versões do Ubuntu Long Term Support (LTS). O último é o Ubuntu 14.04 LTS, onde o processo init é gerenciado pelo Upstart, proprietário da Canonical. No entanto, estou usando o Ubuntu 15.10 com o processo de inicialização SystemD padrão do Linux. Portanto, não consigo iniciar o serviço MongoDB na inicialização.
Quando leio o status do serviço ou tento iniciá-lo, mostro 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) em https://docs.mongodb.org/master/tutorial/install-mongodb-on-ubuntu/ e não o meta-pacote MongoDB 2.6 (mongodb) do Ubuntu repositório.
> 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?
Respostas:
Eu consegui iniciar o serviço MongoDB com o SystemD na inicialização:
Desinstalei o meta-pacote oficial (mongodb-org) v3.2 e instalei o meta-pacote (mongodb) v2.6 do repositório Ubuntu:
Crie o arquivo de configuração do serviço, como mostrado abaixo:
Verifique na lista se o serviço está ativado ou desativado usando o comando abaixo:
Se estiver desabilitado ou não estiver na lista, habilite-o:
Verifique novamente:
Agora você pode gerenciar o serviço no processo de inicialização do SystemD:
Desfrutar!
fonte
/lib
./lib
. As partes da definição de serviço são boas o suficiente para iniciar o serviço; as configurações adicionais não têm efeito significativo; portanto, são consideradas complementares. Se você adicionar aPIDFile=/var/run/mongodb/mongod.pid
linha e asrun
instruções on-ExecStart=
line, você receberá um erro, porque estou usando o meta-pacote (mongodb) 2.6, não o meta-pacote (mongodb-org) 3.2.chown
eles antes que o mongod iniciasse através do systemctl. Nada que os documentos de instalação não tivessem me contado, mas, caso seja útil!Na instalação padrão do repositório 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 no nome do serviço mongo d , não no mongodb )NOTA: isso é testado no Debian / GNU Jessie 8.x com systemd e no Ubuntu Xerus 16.04 LTS.
fonte
/lib/systemd/system/mongod.service
no meu Ubuntu 16.04