web-dev-qa-db-fra.com

Exécution de mongodb sur Ubuntu 16.04 LTS

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?

38
Sagi Forbes

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:

  1. passer à la racine en utilisant
     Sudo su 
    

ou utilisez Sudo pour toutes les étapes suivantes.

  1. créer un script de service (dans cet exemple, le nom du service est Mongodb)

     nano /lib/systemd/system/mongodb.service
    
  2. 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
77
Sagi Forbes

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...

35
efkan

Pour les personnes qui veulent une nouvelle installation

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!

23
Nicola Pedretti

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:

numéro pertinent de JIRA

question connexe sur Ask Ubunt

20
Hut8
Sudo systemctl start mongod

est ce qui a fonctionné pour moi sur Ubuntu Linux 16.04

0
Saunved Mutalik