Esegui il servizio MongoDB come demone di SystemD su Ubuntu 15.10

10

MongoDB supporta solo le versioni di Ubuntu Long Term Support (LTS). L'ultimo è Ubuntu 14.04 LTS, dove il processo di init è gestito da Upstart proprietario di Canonical. Comunque sto usando Ubuntu 15.10 con il processo di avvio SystemD standard di Linux. Quindi non posso avviare il servizio MongoDB all'avvio.

Quando leggo lo stato del servizio o provo ad avviarlo, mostra il messaggio "impossibile caricare":

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

Sto eseguendo l'edizione comunitaria ufficiale di MongoDB 3.2 (mongodb-org) da link non il meta-pacchetto MongoDB 2.6 (mongodb) dal repository di Ubuntu.

> 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

Qualcuno sa come avviare MongoDB con SystemD?

    
posta Fernando Santucci 22.03.2016 - 02:39

2 risposte

17

Sono riuscito a avviare il servizio MongoDB con SystemD all'avvio:

Ho disinstallato il meta-pacchetto ufficiale (mongodb-org) v3.2, quindi ho installato il meta-pacchetto (mongodb) v2.6 dal repository di Ubuntu:

> sudo apt-get remove mongodb-org
> sudo apt-get install mongodb

Crea il file di configurazione del servizio come mostrato di seguito:

> cd /lib/systemd/system
> sudo touch mongodb.service
> sudo nano mongodb.service
[Unit]
Description=An object/document-oriented database
Documentation=man:mongod(1)
After=network.target

[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongodb.conf

[Install]
WantedBy=multi-user.target

Verifica nell'elenco se il servizio è abilitato o disabilitato utilizzando il comando seguente:

> systemctl list-unit-files --type=service
...
mongodb.service             disabled
...

Se è disabilitato o non presente nell'elenco, abilitalo:

> sudo systemctl enable mongodb.service

Controlla di nuovo:

> systemctl list-unit-files --type=service 
...
mongodb.service             enabled
...

Ora puoi gestire il servizio sul processo di avvio di SystemD:

> systemctl status mongodb
> sudo systemctl stop mongodb
> sudo systemctl start mongodb
> sudo systemctl restart mongodb

Enjoy!

    
risposta data Fernando Santucci 22.03.2016 - 03:09
6

Per l'installazione predefinita dal repository MongoDB, per avere l'avvio automatico del servizio mongod , tutto ciò che devi fare è abilitare il servizio system.d:

systemctl enable mongod.service (fai attenzione al nome del servizio mongo d , non mongodb )

NOTA: questo è testato su entrambi i Debian / GNU Jessie 8.x con systemd e Ubuntu Xerus 16.04 LTS.

    
risposta data stamster 23.11.2016 - 14:58

Leggi altre domande sui tag