Iedereen die Ubuntu 16.04 (ook bekend als Ubuntu Xenial xerus) heeft geüpgraded of geïnstalleerd, merkte op dat sommige van de oude services niet meer werkten. Dit probleem is bekend vanaf versie 15.04, maar ik zal me concentreren op de bovenstaande versie.
Dat was mijn geval met MongoDB. Om een lang verhaal kort te maken, Ubuntu verschoof van parvenu naar systemd. Een veelvoorkomende oplossing voor deze problemen is om terug te gaan naar parvenu. Ik beschouw die optie niet als een echte oplossing, zeker niet voor de lange termijn.
Een echte oplossing ( IMHO ) voor het probleem is het schrijven van een systemd-script dat MongodDB zal starten. Helaas moesten de jongens van MongoDB er nog een leveren.
Dus ik moest er een helemaal opnieuw schrijven. Volg deze stappen om er zelf een te maken:
- schakel over naar root met
sudo su
of gebruik sudo voor alle volgende stappen.
-
maak een servicescript (in dit voorbeeld is de naam van de service Mongodb)
nano /lib/systemd/system/mongodb.service
-
Bestandsinhoud moet
. zijn[Unit] Description=MongoDB Database Service Wants=network.target After=network.target [Service] ExecStart=/usr/bin/mongod --config /etc/mongod.conf ExecReload=/bin/kill -HUP $MAINPID Restart=always User=mongodb Group=mongodb StandardOutput=syslog StandardError=syslog [Install] WantedBy=multi-user.target
U kunt het bestand ook hier downloaden:mongodb.service
Hier is een korte beschrijving van de belangrijke velden:
ExecStart - Is het commando om uit te voeren. Mongo installeert zichzelf onder /usr/bin en het configuratiebestand wordt geschreven in /etc
Gebruiker - De uid van het mongod-proces.
Groep - De gid van het mongod-proces. Merk op dat de gebruiker en groep door de installatie worden aangemaakt.
Om nu mongodb te starten:
sudo systemctl start mongodb
Om het gebruik van de mongodb-service te stoppen:
sudo systemctl stop mongodb
Mongodb inschakelen bij opstarten
sudo systemctl enable mongodb.service
Als u de services moet vernieuwen, gebruikt u:
sudo systemctl daemon-reload