web-dev-qa-db-fra.com

Exécuter le service MongoDB en tant que démon de SystemD sur Ubuntu 15.10

MongoDB prend uniquement en charge les versions de support à long terme d'Ubuntu (LTS). Le dernier est Ubuntu 14.04 LTS, où le processus d’initialisation est géré par Upstart, propriétaire de Canonical. Cependant, j'utilise Ubuntu 15.10 avec le processus d'initialisation SystemD standard de Linux. Je ne peux donc pas démarrer le service MongoDB au démarrage.

Lorsque je lis le statut du service ou que j'essaie de le démarrer, affiche le message "Échec du chargement":

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

J'utilise la version officielle de MongoDB 3.2 Community Edition (mongodb-org) depuis https://docs.mongodb.org/master/tutorial/install-mongodb-on-ubuntu/ pas avec la méta MongoDB 2.6. -package (mongodb) à partir du référentiel 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

Quelqu'un sait comment démarrer MongoDB avec SystemD?

12
Fernando Santucci

J'ai réussi à démarrer le service MongoDB avec SystemD au démarrage:

J'ai désinstallé le méta-paquet officiel (mongodb-org) v3.2, puis j'ai installé le méta-paquet (mongodb) v2.6 à partir du référentiel Ubuntu:

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

Créez le fichier de configuration du service comme indiqué ci-dessous:

> 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

Vérifiez dans la liste si le service est activé ou désactivé en utilisant la commande ci-dessous:

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

S'il est désactivé ou non dans la liste, activez-le:

> Sudo systemctl enable mongodb.service

Revérifier:

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

Vous pouvez maintenant gérer le service sur le processus d’initialisation SystemD:

> systemctl status mongodb
> Sudo systemctl stop mongodb
> Sudo systemctl start mongodb
> Sudo systemctl restart mongodb

Prendre plaisir!

22
Fernando Santucci

Lors de l'installation par défaut à partir du référentiel MongoDB, pour que le service mongod démarre automatiquement, il vous suffit d'activer le service system.d:

systemctl enable mongod.service (faites attention à mongo d nom du service, pas mongodb )

REMARQUE: ceci est testé sur Debian/GNU Jessie 8.x avec systemd et Ubuntu Xerus 16.04 LTS.

6
stamster