Como iniciar o servidor MongoDB na inicialização do sistema?


86

Eu tenho que iniciar meu servidor MongoDB toda vez que o sistema reiniciar. Como faço para configurá-lo para iniciar no meu sistema operacional? Estou no Ubuntu 11.04.


11
Eu me pergunto por que ninguém recomenda usar o iniciante aqui.
Tom

Respostas:


133

Eu tive o mesmo "problema" no Debian jessie, e minha solução simples é:

systemctl enable mongod.service

Eu acho que no Ubuntu é o mesmo.

- EDITAR -

De acordo com os comentários, ele também funciona no Ubuntu. No Ubuntu 18.04 LTS, parece ser esta solução:

systemctl enable mongodb.service

Graças a @Adam. Talvez eles mudaram o nome do serviço


10
Trabalhou para mimUbuntu Mate 16.04.2 LTS
Muhammad Gelbana

2
Pena que não há informações na documentação oficial sobre como iniciar o serviço.
UpTheCreek

2
pode precisar (sudo) systemctl start mongodpara iniciar o serviço mongd
Jeff Xiao

2
Também funciona no ubuntu 18.04 LTS
89n3ur0n

11
Só funciona para mim se eu mudar mongod.servicepara o mongodb.serviceUbuntu 18.04 LTS - estranho?
Adam

37

Se você instalar o MongoDB usando a Advanced Packaging Tool (apt), ele configurará seus scripts de inicialização para executar o Mongo automaticamente quando o sistema inicializar.

As etapas são as seguintes, primeiro configure o apt para poder baixar o pacote Mongo:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
sudo nano /etc/apt/sources.list

Adicione esta linha ao sources.list e salve:

deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen

Em seguida, baixe e instale o Mongo com o utilitário apt-get :

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mongodb-10gen

Se você quiser fazer alterações na configuração, edite seu mongodb.conf e reinicie: 

sudo nano /etc/mongodb.conf
sudo service mongod restart

5
Se desejar alterá-lo posteriormente para não iniciar automaticamente o MongoDB na inicialização, edite /etc/init/mongodb.conf.
Kynan

11

O controle de todos os links de serviço init.d deve ser feito com a ferramenta update-rc.d

ou seja, para ativar o daemon mongod nos níveis de execução padrão (ou seja, ativá-lo na inicialização):

update-rc.d mongodb defaults

Veja https://help.ubuntu.com/community/UbuntuBootupHowto para obter mais informações. Este link informa tudo o que você deseja saber sobre como definir programas na inicialização.


2
A distribuição 10gen MongoDB não usa scripts init do estilo System-V, você precisa editar /etc/init/mongodb.conf.
Kynan

preciso fazer isso?
tofutim

5

Se você instalou o MongoDB Community Edition (que é o caminho recomendado, pois recebe atualizações mais frequentes do que o pacote distribuído no repositório de pacotes Ubuntu), você configura o comportamento de iniciar / pararmongod através do script init upstart /etc/init/mongod.conf , cujo padrão é iniciar o daemon. automaticamente na inicialização

start on runlevel [2345]
stop on runlevel [06]

Se você não deseja que ele inicie automaticamente, substitua essas 2 linhas por

stop on runlevel [023456]

Isso iniciará o servidor antes que alguém faça login no sistema?
Gabriel Fair

@GabrielFair Yes
kynan

5

Estou usando o crontab para o Ubuntu. Funciona bem. Para poder editar o arquivo

Sudo crontab –e 

Adicione esta linha ao arquivo

@reboot sudo service mongod start &

O suspiro "&" no final ajuda a trabalhar em segundo plano.

Ctrl+ xpara sair, pressione "Y" uma vez solicitado. E mantenha o nome do arquivo como "crontab".


3

Se você possui o Ubuntu 16.04 LTS, pode habilitar o mongo para iniciar na inicialização digitando isso no seu console:
sudo systemctl enable mongod
Eu usei essa abordagem com o MongoDB Community Edition 3.6 e funciona. Reinicie sua máquina e teste se o mongo está executando digitando:
sudo service mongod status


3

Você pode usar o comando systemctl para ativar o serviço mongo na execução na inicialização do sistema.

Crie um serviço que

sudo nano /etc/systemd/system/mongodb.service

Coloque o conteúdo no arquivo

[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

Depois disso, você poderá usar comandos de serviço como

sudo service mongod start|stop|restart

e se você quiser fazer isso na inicialização da máquina, é possível criar o arquivo mongod em /etc/init.d/


1

chkconfig --levels 235 mongod on?

onde mongodb é o nome do seu serviço


2
A distribuição 10gen MongoDB não usa scripts init do estilo System-V por padrão (embora um seja fornecido), edite /etc/init/mongodb.conf.
Kynan

@kynan Edite-o como? O que altero / adiciono ao arquivo mongod.conf?
Kieveli

@Kieveli: veja esta resposta
Kynan

1

Eu sempre usei este post como ponto de partida para colocar em funcionamento uma nova plataforma de sharding. Ele inclui uma seção sobre a configuração do upstart que eu também usei.

http://joslynesser.com/blog/archives/2010/09/28/mongodb-sharding-guide-server-setup-on-ubuntu-ec2/


11
Por favor, não publique "apenas links externos". É possível que o link externo caia no futuro e essa resposta fique incompleta. Além do link, poste a parte relevante do artigo aqui: por exemplo. publique a parte que mostra "Como iniciar o servidor MongoDB na inicialização do sistema?" usando upstart.
rigved

1

Se você instalar o MongoDB apt-getcomo descrito no guia de instalação do MongoDB Ubuntu , ele virá com um script básico de inicialização e um arquivo de configuração. (o uso de um arquivo de configuração é altamente recomendado)

Você também pode dar uma olhada aqui para uma postagem antiga que é vinculada a um init.dscript.

Nos dois casos, a premissa básica é que você está configurando um serviço e depois configurando para iniciar com o computador. Essa é uma técnica bastante comum para servidores, existem muitos tutoriais para fazer exatamente isso.


2
não é mais o caso em 16.04
chovy
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.