Enhver, der opgraderer eller installerede Ubuntu 16.04 (også kendt som Ubuntu Xenial xerus), bemærkede, at nogle af de gamle tjenester holdt op med at køre. Dette problem er kendt fra version 15.04, men jeg vil fokusere på ovenstående version.
Sådan var mit tilfælde med MongoDB. For at gøre en lang historie kort, skiftede Ubuntu fra opkomling til systemd. En almindelig løsning på disse problemer er at skifte tilbage til upstart. Jeg betragter ikke den mulighed som en reel løsning, bestemt ikke på længere sigt.
En reel løsning (IMHO) på problemet er at skrive systemd-script, der starter MongodDB. Desværre havde MongoDB-folkene endnu ikke leveret en.
Så jeg var nødt til at skrive en fra bunden. Følg disse trin for at oprette en af dine egne:
- skift til root ved hjælp af
sudo su
eller brug sudo til alle de følgende trin.
-
opret et servicescript (i dette eksempel er navnet på tjenesten Mongodb)
nano /lib/systemd/system/mongodb.service
-
Filindhold skal være
[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
Du kan også downloade filen herfra:mongodb.service
Her er en hurtig beskrivelse af de vigtige felter:
ExecStart - Er kommandoen til at køre. Mongo installerer sig selv under /usr/bin og konfigurationsfilen er skrevet på /etc
Bruger - Uid for mongod-processen.
Gruppe - Mongod-processens gid. Bemærk, at brugeren og gruppen er oprettet af installationen.
Nu for at starte mongodb:
sudo systemctl start mongodb
For at stoppe mongodb service brug:
sudo systemctl stop mongodb
For at aktivere mongodb ved opstart
sudo systemctl enable mongodb.service
Hvis du har brug for at opdatere tjenesterne, brug:
sudo systemctl daemon-reload