168 votes

Est-ce que mongodb fonctionne ?

J'ai installé Mongodb et les pilotes PHP sur mon serveur Unix.

Ma question est la suivante : comment puis-je savoir si Mongodb est en cours d'exécution ? Existe-t-il une requête simple en ligne de commande pour vérifier le statut ? Si je le lance une fois à partir du shell, continuera-t-il à fonctionner si je quitte le shell (cela ne semble pas être le cas) ? Comment puis-je rendre la connexion Mongodb persistante et la lancer automatiquement au redémarrage du serveur ?

Je peux courir :

-bash-3.2$ su  
Password:  
[root@xxx]# cd /var/lib  
[root@xxx]# ./mongodb-linux-i686-1.6.5/bin/mongod  
./mongodb-linux-i686-1.6.5/bin/mongod --help for help and startup options  
Wed Feb 23 08:06:54 MongoDB starting : pid=7271 port=27017 dbpath=/data/db/ 32-bit  

** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data  
**       see http://blog.mongodb.org/post/137788967/32-bit-limitations  

** WARNING: You are running in OpenVZ. This is known to be broken!!!  

Wed Feb 23 08:06:54 db version v1.6.5, pdfile version 4.5  
Wed Feb 23 08:06:54 git version: 0eb017e9b2828155a67c5612183337b89e12e291  
Wed Feb 23 08:06:54 sys info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri  
Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_37  
Wed Feb 23 08:06:54 [initandlisten] waiting for connections on port 27017  
Wed Feb 23 08:06:54 [websvr] web admin interface listening on port 28017  

Si j'ouvre un shell séparé, je peux alors me connecter à mongodb :

-bash-3.2$ cd /var/lib  
-bash-3.2$ ./mongodb-linux-i686-1.6.5/bin/mongo  
MongoDB shell version: 1.6.5  
connecting to: test  
> db.foo.find()  
{ "_id" : ObjectId("4d63d7d3eb95985ab19c8feb"), "a" : 1 }

Cependant, si je ferme le shell initial, je ne peux pas me connecter :

-bash-3.2$ cd /var/lib  
-bash-3.2$ ./mongodb-linux-i686-1.6.5/bin/mongo  
MongoDB shell version: 1.6.5  
connecting to: test  
Wed Feb 23 08:25:10 Error: couldn't connect to server 127.0.0.1 (anon):1154  
exception: connect failed

174voto

Tilo Points 13833

Vérifiez avec l'un ou l'autre :

ps -edaf | grep mongo | grep -v grep  # "ps" flags may differ on your OS

ou

/etc/init.d/mongodb status     # for MongoDB version < 2.6

/etc/init.d/mongod status      # for MongoDB version >= 2.6

ou

service mongodb status         # for MongoDB version < 2.6

service mongod status          # for MongoDB version >= 2.6

pour voir si mongod fonctionne (vous devez être Root pour faire cela, ou préfixer tout avec sudo ). Veuillez noter que la commande 'grep' apparaîtra toujours comme un processus distinct.

Vérifiez le fichier journal /var/log/mongo/mongo.log pour voir s'il y a des problèmes signalés.

51voto

Je trouve :

ps -ax | grep mongo

Pour être beaucoup plus cohérent. La valeur retournée peut être utilisée pour détecter le nombre d'instances de mongod en cours d'exécution.

44voto

PiyushW Points 10

Pour vérifier rapidement si mongodb est en cours d'exécution, cette astuce nc rapide vous le fera savoir.

nc -zvv localhost 27017

La commande ci-dessus suppose que vous l'exécutez sur le port par défaut sur localhost.

Pour le démarrage automatique, vous pouvez regarder dans ce fil .

17voto

Vinu Joseph Points 596

Cela devrait fonctionner correctement...

pgrep mongod

14voto

Kaizoku Gambare Points 974

Sur Ubuntu ( doc )

sudo systemctl status mongod

Si vous courez

● mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-10-14 14:13:40 UTC; 3s ago
       Docs: https://docs.mongodb.org/manual
   Main PID: 1604 (mongod)
     Memory: 210.8M
     CGroup: /system.slice/mongod.service
             └─1604 /usr/bin/mongod --config /etc/mongod.conf

Si ce n'est pas le cas

● mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
     Active: inactive (dead)
       Docs: https://docs.mongodb.org/manual

Pour démarrer mongodb

sudo systemctl start mongod

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X