MongoDB-Dienst als Daemon von SystemD unter Ubuntu 15.10 ausführen

10

MongoDB unterstützt nur Versionen von Ubuntu Long Term Support (LTS). Die letzte ist Ubuntu 14.04 LTS, wo der Init-Prozess von Upstart proprietär von Canonical verwaltet wird. Allerdings verwende ich Ubuntu 15.10 mit dem Linux-Standard-SystemD-Init-Prozess. Daher kann ich den MongoDB-Dienst beim Booten nicht starten.

Wenn ich den Service-Status lese oder versuche, ihn zu starten, zeige die Meldung "Fehler beim Laden":

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

Ich führe die offizielle MongoDB 3.2 Community Edition (mongodb-org) von link Nicht das MongoDB 2.6 Meta-Paket (mongodb) aus dem Ubuntu-Repository.

> 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

Jemand weiß, wie man die MongoDB mit SystemD startet?

    
Fernando Santucci 22.03.2016, 02:39

2 Antworten

16

Ich habe den MongoDB-Dienst beim Systemstart mit SystemD gestartet:

Ich habe das offizielle Meta-Paket (mongodb-org) v3.2 deinstalliert und dann das Meta-Paket (mongodb) v2.6 vom Ubuntu-Repository installiert:

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

Erstellen Sie die Dienstkonfigurationsdatei wie folgt:

> 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

Überprüfen Sie in der Liste, ob der Dienst mit dem folgenden Befehl aktiviert oder deaktiviert ist:

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

Wenn es in der Liste deaktiviert ist oder nicht, aktivieren Sie es:

> sudo systemctl enable mongodb.service

Noch einmal prüfen:

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

Jetzt können Sie den Service im SystemD-Init-Prozess verwalten:

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

Viel Spaß!

    
Fernando Santucci 22.03.2016, 03:09
6

Bei der Standardinstallation aus dem MongoDB-Repository müssen Sie den automatischen Dienst mongod starten. Dazu müssen Sie nur den Dienst system.d aktivieren:

systemctl enable mongod.service (achten Sie auf Mongo d Servicename, nicht mongodb )

HINWEIS: Dies wird auf Debian / GNU Jessie 8.x mit Systemd und Ubuntu Xerus 16.04 LTS getestet.

    
stamster 23.11.2016 14:58