Comment puis-je exécuter Mongodb, en tant que service, sur Ubuntu 16.04 LTS? Il y a quelques jours, j'avais mis à niveau mon serveur vers Ubuntu 16.04. J'ai remarqué que mon service MongoDB ne démarre pas lorsque je redémarre. Essayer d'utiliser
Sudo initctl start mongod
N'a pas fait le tour. Quelqu'un a une idée comment résoudre ce problème?
Quiconque a mis à niveau ou installé Ubuntu 16.04 (également appelé Ubuntu Xenial xerus) a remarqué que certains des anciens services ne fonctionnaient plus. 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 une longue histoire, bref, Ubuntu est passé de upstart à systemd. Une solution commune à ces problèmes consiste à revenir au mode de démarrage. Je ne considère pas cette option comme une vraie solution, certainement pas à long terme.
Une solution réelle (IMHO) au problème consiste à écrire un script systemd qui lancera MongodDB. Malheureusement, les gars de MongoDB n’en ont pas encore fourni.
J'ai donc dû en écrire un de toutes pièces. Pour créer l'un des vôtres, suivez ces étapes:
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 = Service de base de données MongoDB Désire = network.target Après = network.target [Service ] ExecStart =/usr/bin/mongod --config /etc/mongod.conf[.____. Page_ExecReload=/bin/kill -HUP $ MAINPID Redémarrez = toujours Utilisateur = mongodb Groupe = mongodb StandardOutput = syslog StandardError = syslog [Installer] WantedBy = multi- user.target
Vous pouvez également télécharger le fichier à partir d'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
Utilisateur - L'usage du processus mongod.
Groupe - Le gid du processus mongod. Notez que l'utilisateur et le groupe sont créés par l'installation.
Maintenant, pour commencer 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 l'utilisation des services:
Sudo systemctl daemon-reload
La dernière version de MongoDB fait la plupart des choses sauf une chose pour le moment. Après avoir installé le MongoDB
sur Ubuntu 16.04.x
, exécutez les commandes comme suit:
$ Sudo systemctl enable mongod.service
$ Sudo systemctl daemon-reload
Il est probable que mongod
démarre automatiquement à chaque démarrage.
Cette solution fonctionne également en cas d'obtention de cette erreur:
Impossible de démarrer mongod.service: unité mongod.service introuvable.
Après avoir exécuté les commandes ci-dessus, les commandes ci-dessous commencent à fonctionner:
$ Sudo service mongod start
$ mongo
De même, tous les services installés doivent être activés pour pouvoir s'exécuter. Par exemple, après l’installation de Ops Manager (a.k.a MMS), la documentation indique d’exécuter la recommandation ci-dessous.
$ Sudo systemctl start mongodb-mms.service
Très probablement, Ubuntu ne démarre pas le service. Parce que ce n'est pas encore activé. Pour l'activer, lancez la commande ci-dessous:
$ Sudo systemctl enable mongodb-mms.service
$ Sudo systemctl daemon-reload
Puis essayez de démarrer le service:
$ Sudo systemctl enable mongodb-mms.service
C'est tout...
Je lutte avec cela depuis 1 heure. Ensuite, j'ai trouvé cette page L'installation est aussi simple que faire:
Sudo apt-get update
Sudo apt-get install mongodb
Puis pour vérifier si tout fonctionne:
Sudo service mongodb status
Faites-moi savoir si cela fonctionne pour vous!
Les packages pour la version 3.2+ contiennent des scripts de démarrage.
D'abord, suivez les instructions officielles instructions d'installation :
# If you installed the ubuntu package, remove it, if not skip to key import
Sudo apt-get remove mongodb
Sudo apt-get autoremove
# import key
Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
# add trusty repos
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
# update apt
Sudo apt-get update
# install the package
Sudo apt-get install -y mongodb-org
Puis démasquez le travail mongodb.service
(puis activez-le et démarrez-le). Je pense que cela a été masqué parce que le paquet inclut également des travaux en démarrage, vous ne voudriez donc pas que les deux commencent. Dans notre cas, cependant, c’est clairement ce que nous voulons.
Sudo systemctl unmask mongodb
Sudo service mongod start
Références:
Sudo systemctl start mongod
est ce qui a fonctionné pour moi sur Ubuntu Linux 16.04