Come avviare il server MongoDB all'avvio del sistema?


86

Devo avviare il mio server MongoDB ogni volta che il sistema si riavvia. Come lo configuro per iniziare con il mio sistema operativo? Sono su Ubuntu 11.04.


1
Mi chiedo perché nessuno consiglia di utilizzare upstart qui.
Tom

Risposte:


133

Ho avuto lo stesso "problema" su Debian jessie e la mia soluzione semplice è:

systemctl enable mongod.service

Penso che in Ubuntu sia lo stesso.

-- MODIFICARE --

Secondo i commenti, funziona anche su Ubuntu. Su Ubuntu 18.04 LTS sembra essere questa soluzione:

systemctl enable mongodb.service

Grazie a @Adam. Forse hanno cambiato il nome del servizio


10
Ha funzionato per meUbuntu Mate 16.04.2 LTS
Muhammad Gelbana,

2
Peccato che non ci siano informazioni nella documentazione ufficiale sull'avvio del servizio.
UpTheCreek

2
potrebbe essere necessario (sudo) systemctl start mongodavviare il servizio mongd
Jeff Xiao

2
Funziona anche su Ubuntu 18.04 LTS
89n3ur0n

1
Funziona solo per me, se cambio mongod.servicea mongodb.servicesu Ubuntu 18.04 LTS - strano?
Adam

37

Se installi MongoDB usando Advanced Packaging Tool (apt), configurerà gli script di avvio per eseguire automaticamente Mongo all'avvio del sistema.

I passaggi sono i seguenti, prima configurare apt per poter scaricare il pacchetto Mongo:

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

Aggiungi questa riga a sources.list quindi salva:

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

Quindi scaricare e installare Mongo con l' utilità apt-get :

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

Se si desidera apportare modifiche alla configurazione, modificare mongodb.conf e riavviare: 

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

5
Se si desidera successivamente modificarlo per non avviare automaticamente MongoDB all'avvio, modificare /etc/init/mongodb.conf.
kynan,

11

Il controllo di tutti i collegamenti del servizio init.d deve essere eseguito con lo strumento update-rc.d

cioè per attivare il demone mongod nei runlevel predefiniti (ovvero accenderlo all'avvio):

update-rc.d mongodb defaults

Vedi https://help.ubuntu.com/community/UbuntuBootupHowto per ulteriori informazioni. Questo link ti dice tutto quello che vuoi sapere su come impostare i programmi all'avvio.


2
La distribuzione MongoDB 10gen non utilizza gli script di init in stile System-V, è necessario modificarli /etc/init/mongodb.conf.
kynan,

devo fare questo?
Tofutim,

5

Se hai installato MongoDB Community Edition (che è il modo consigliato poiché riceve aggiornamenti più frequenti rispetto al pacchetto distribuito nel repository di pacchetti Ubuntu) configura il comportamento di avvio / arrestomongod tramite lo script init upstart /etc/init/mongod.conf , che per impostazione predefinita avvia il demone automaticamente all'avvio

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

Se non si desidera che si avvii automaticamente, sostituire quelle 2 righe con

stop on runlevel [023456]

Questo avvierà il server prima che qualcuno acceda al sistema?
Gabriel Fair

@GabrielFair Sì
kynan il

5

Sto usando crontab per Ubuntu. Funziona bene Per poter modificare il file

Sudo crontab –e 

Aggiungi questa riga al file

@reboot sudo service mongod start &

Il sospiro "&" alla fine lo aiuta a lavorare in background.

Ctrl+ xper uscire, premere "Y" una volta richiesto. E mantieni il nome del file come "crontab".


3

Se hai Ubuntu 16.04 LTS, puoi abilitare mongo a partire all'avvio digitando questo nella tua console:
sudo systemctl enable mongod
ho usato questo approccio con MongoDB Community Edition 3.6 e funziona. Riavvia il computer e verifica se mongo è in esecuzione digitando:
sudo service mongod status


3

È possibile utilizzare il comando systemctl per abilitare il servizio mongo all'avvio del sistema.

Creare un servizio tale che

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

Inserisci il contenuto nel file

[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

dopodiché sarai in grado di utilizzare comandi di servizio come

sudo service mongod start|stop|restart

e poi se vuoi inventarlo all'avvio del computer, puoi creare il file mongod in /etc/init.d/


1

chkconfig --levels 235 mongod on?

dove mongodb è il nome del tuo servizio


2
La distribuzione MongoDB 10gen non utilizza gli script di init di stile System-V per impostazione predefinita (sebbene ne sia fornito uno), modifica /etc/init/mongodb.confinvece.
kynan,

@kynan Modifica come? Cosa posso modificare / aggiungere al file mongod.conf?
Kieveli,

@Kieveli: vedi questa risposta
kynan,

1

Ho costantemente usato questo post come punto di partenza per mettere in funzione una nuova piattaforma di sharding. Include una sezione sulla configurazione iniziale che ho usato anche.

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


1
Si prega di non pubblicare "solo link esterni". È possibile che il collegamento esterno possa scendere in futuro e questa risposta sarebbe quindi incompleta. Oltre al link, pubblica qui la parte rilevante dell'articolo: ad es. pubblicare la parte che mostra "Come avviare il server MongoDB all'avvio del sistema?" usando upstart.
truccato il

1

Se installi MongoDB apt-getcome descritto nella guida all'installazione di Ubuntu MongoDB , verrà fornito con uno script di avvio di base e un file di configurazione. (si consiglia vivamente di utilizzare un file di configurazione)

Puoi anche dare un'occhiata qui per un vecchio post che si collega a uno init.dscript.

In entrambi i casi, la premessa di base è che stai configurando un servizio e quindi configurando l'avvio-arresto con il computer. Questa è una tecnica abbastanza comune per i server, ci sono molti tutorial in giro per fare esattamente questo.


2
non è più il caso nel 16.04
chovy
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.