MongoDB obsługuje tylko wersje Ubuntu Long Term Support (LTS). Ostatnim jest Ubuntu 14.04 LTS, gdzie procesem inicjowania zarządza Upstart, firma Canonical. Jednak używam Ubuntu 15.10 ze standardowym procesem inicjalizacji SystemD w Linuksie. Nie mogę więc uruchomić usługi MongoDB podczas rozruchu.
Kiedy czytam status usługi lub próbuję go uruchomić, wyświetlam komunikat „nie można załadować”:
> 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.
Używam oficjalnej wersji MongoDB 3.2 Community Edition (mongodb-org) z https://docs.mongodb.org/master/tutorial/install-mongodb-on-ubuntu/, a nie meta-pakietu MongoDB 2.6 (mongodb) z Ubuntu magazyn.
> 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
Ktoś wie, jak uruchomić MongoDB z SystemD?
Odpowiedzi:
Udało mi się uruchomić usługę MongoDB z SystemD przy rozruchu:
Odinstalowałem oficjalny meta-pakiet (mongodb-org) v3.2, a następnie zainstalowałem meta-pakiet (mongodb) v2.6 z repozytorium Ubuntu:
Utwórz plik konfiguracji usługi, jak pokazano poniżej:
Sprawdź na liście, czy usługa jest włączona, czy wyłączona za pomocą poniższego polecenia:
Jeśli jest wyłączone lub nie ma go na liście, włącz:
Sprawdź ponownie:
Teraz możesz zarządzać usługą w procesie inicjalizacji SystemD:
Cieszyć się!
źródło
/lib
./lib
. Części definicji usługi są wystarczająco dobre, aby uruchomić usługę, dodatkowe ustawienia nie mają znaczącego wpływu, więc są uważane za komplementarne. Jeśli dodaszPIDFile=/var/run/mongodb/mongod.pid
wiersz irun
instrukcję on-ExecStart=
line, pojawi się błąd, ponieważ używam (mongodb) meta-pakietu 2.6, a nie (mongodb-org) meta-pakietu 3.2.chown
je zanim mongod zacznie się przez systemctl. Nic nie powiedziałoby mi dokumenty instalacyjne, ale na wypadek, gdyby było to pomocne!W przypadku domyślnej instalacji z repozytorium MongoDB, w celu automatycznego uruchomienia usługi mongod , wystarczy włączyć usługę system.d:
systemctl enable mongod.service
(zwróć uwagę na nazwę usługi mongo d , a nie mongodb )UWAGA: jest to testowane zarówno na Debianie / GNU Jessie 8.x z systememd i Ubuntu Xerus 16.04 LTS.
źródło
/lib/systemd/system/mongod.service
moim Ubuntu 16.04