MongoDB unterstützt nur Versionen von Ubuntu Long Term Support (LTS). Das letzte ist Ubuntu 14.04 LTS, wo der Init-Prozess von Upstart verwaltet wird, das Eigentum von Canonical ist. Allerdings benutze ich Ubuntu 15.10 mit dem Linux-Standard-SystemD-Init-Prozess. Daher kann ich den MongoDB-Dienst beim Booten nicht starten.
Wenn ich den Dienststatus lese oder versuche, ihn zu starten, wird die Meldung "Fehler beim Laden" angezeigt:
> 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 verwende die offizielle MongoDB 3.2 Community Edition (mongodb-org) von https://docs.mongodb.org/master/tutorial/install-mongodb-on-ubuntu/, nicht das MongoDB 2.6-Metapaket (mongodb) von 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
Weiß jemand, wie man die MongoDB mit SystemD startet?
Antworten:
Ich habe es geschafft, den MongoDB-Dienst beim Booten mit SystemD zu starten:
Ich habe das offizielle Metapaket (mongodb-org) v3.2 deinstalliert und dann das Metapaket (mongodb) v2.6 aus dem Ubuntu-Repository installiert:
Erstellen Sie die Service-Konfigurationsdatei wie folgt:
Überprüfen Sie in der Liste mit dem folgenden Befehl, ob der Dienst aktiviert oder deaktiviert ist:
Wenn es in der Liste deaktiviert ist oder nicht, aktivieren Sie es:
Nochmal Überprüfen:
Jetzt können Sie den Dienst auf dem SystemD-Init-Prozess verwalten:
Genießen!
quelle
/lib
./lib
. Die Teile der Service-Definition sind gut genug, um den Service zu starten. Die zusätzlichen Einstellungen haben keine nennenswerten Auswirkungen und werden daher als komplementär angesehen. Wenn Sie diePIDFile=/var/run/mongodb/mongod.pid
Zeile und dierun
AnweisungExecStart=
online hinzufügen , erhalten Sie eine Fehlermeldung, da ich (mongodb) Metapaket 2.6 verwende, nicht das (mongodb-org) Metapaket 3.2.chown
umgestiegen bin. Meine einzige Neuerung war , dass ich die Daten- und Protokollverzeichnisse neu erstellen musste, bevor mongod über systemctl starten konnte. Nichts, was mir die Installationsdokumentation nicht gesagt hätte, aber für den Fall, dass es hilfreich ist!Bei der Standardinstallation aus dem MongoDB-Repository müssen Sie nur den system.d- Dienst aktivieren , damit der mongod- Dienst automatisch gestartet wird:
systemctl enable mongod.service
( Achten Sie auf den Namen des mongo d- Dienstes, nicht auf mongodb )HINWEIS: Dies wird auf Debian / GNU Jessie 8.x mit systemd und Ubuntu Xerus 16.04 LTS getestet.
quelle
/lib/systemd/system/mongod.service
in meinem Ubuntu 16.04