Quiconque a mis à niveau ou installé Ubuntu 16.04 (également connu sous le nom d'Ubuntu Xenial xerus) a remarqué que certains des anciens services avaient cessé de fonctionner. Ce problème est connu depuis la version 15.04, mais je vais me concentrer sur la version ci-dessus.
Tel était mon cas avec MongoDB. Pour faire court, Ubuntu est passé de parvenu à systemd. Une solution commune, à ces problèmes, est de revenir à upstart. Je ne considère pas cette option comme une vraie solution, certainement pas à long terme.
Une vraie solution (IMHO) au problème consiste à écrire un script systemd qui démarrera MongodDB. Malheureusement, les gars de MongoDB n'en avaient pas encore fourni.
J'ai donc dû en écrire un à partir de zéro. Pour créer l'un des vôtres, suivez ces étapes :
- passez à la racine en utilisant
sudo su
ou utilisez sudo pour toutes les étapes suivantes.
-
créer un script de service (dans cet exemple le nom du service est Mongodb)
nano /lib/systemd/system/mongodb.service
-
Le contenu du fichier doit être
[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
Vous pouvez également télécharger le fichier ici :mongodb.service
Voici une description rapide des champs importants :
ExecStart - Est la commande à exécuter. Mongo s'installe sous /usr/bin et le fichier de configuration est écrit dans /etc
User - L'uid du processus mongod.
Groupe - Le gid du processus mongod. Notez que l'utilisateur et le groupe sont créés par l'installation.
Maintenant, pour démarrer mongodb :
sudo systemctl start mongodb
Pour arrêter l'utilisation du service mongodb :
sudo systemctl stop mongodb
Pour activer mongodb au démarrage
sudo systemctl enable mongodb.service
Si vous avez besoin d'actualiser les services, utilisez :
sudo systemctl daemon-reload