web-dev-qa-db-fra.com

Puis-je simplement tuer mongod pour arrêter mongo?

Je suis très nouveau à Mongo. J'exécute mongod comme décrit ici dans Mac OS X. J'exécute deux processus mongod à partir de la ligne de commande. Si je dois arrêter les processus mongod, je viens d'exécuter kill <pid of mongod>. Est-ce le moyen recommandé d'arrêter mongod?

24
Michael

C'est assez tard, mais j'ai eu le même problème maintenant, et j'ai trouvé un moyen simple:

Esan-iMac:~$mongo admin --eval "db.shutdownServer()"

MongoDB Shell version: 2.6.4
connecting to: admin
2015-02-19T10:54:22.574+0200 DBClientCursor::init call() failed
server should be down...

Cela donne des messages étranges, mais cela fonctionne.

Et j'ai fait alias - commande pour l'exécuter facilement.

alias stop-mongo='/opt/mongo/release/bin/mongo admin --eval "db.shutdownServer()"'

Cela fonctionne au moins si vous démarrez votre mongo manuellement (par exemple avec l'option --fork).

36
Esa

Il a finalement réussi (Ubuntu 15.04) avec

//1.trouver le processus par son nom:

$ pgrep mongo

1350

//2.kill mongod-process

$ kill 1350
32
Mailis Toompuu

La réponse acceptée par Esa est correcte. En outre, pour savoir si l'utilisation de kill est recommandée - oui, mais avec l'indicateur -2 ou aucun indicateur, n'utilisez jamais -9. Comme mentionné dans docs .

kill -2 `pgrep mongo`

Alias ​​

alias stopmongo='kill -2 `pgrep mongo`'
15
saurabheights

Windows

use admin
db.shutdownServer()

Pour les systèmes avec l'authentification activée, les utilisateurs ne peuvent émettre db.shutdownServer () que lorsqu'ils sont authentifiés auprès de la base de données d'administration ou via l'interface localhost sur les systèmes sans authentification activée.

Linux

mongod --shutdown

vous pouvez aussi utiliser

kill <mongod process ID> 

voir http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/

4
jcrada

terminal $ kill $ (pgrep mongod)

1
seunggabi

Je viens de rencontrer un problème avec "juste tuer le mongod" dans mac ...

  1. Le mongod est exécuté en tant que service par "launchctl" dans les systèmes mac. "juste tuer" cela tuera ce service.

  2. Maintenant, pour utiliser mongo Shell, nous faisons à nouveau mongod, mais à d'autres fins de développement comme la connexion à partir d'un nœud, nous devons nous assurer d'exécuter mongod à plusieurs reprises.

  3. Une autre alternative est d'arrêter le système et de redémarrer.

Meilleure façon :

Commencez à utiliser launchctl pour gérer ces services. En voici un exemple:

Quelle est la bonne façon de démarrer un service mongod sur linux/OS X?

1
daksh_019

Le moyen le plus simple est Ctrl + C, qui a fonctionné pour moi sur un shell bash de blocage sous El Capitan.

1
Marshall Farrier

Si vous avez configuré le démarrage automatique, la suppression du processus n'aidera pas, un nouveau démarrera immédiatement. Pour désactiver le démarrage automatique, vous devez d'abord localiser le fichier de démarrage automatique. Vous pouvez essayer de trouver le fichier en utilisant par exemple.

find / -name "mongodb.plist" ou locate "mongodb.plist"

Une fois le fichier trouvé, supprimez la configuration de démarrage automatique en utilisant (vous pouvez essayer sans Sudo d'abord, ce n'est pas nécessaire si vous avez fait l'installation en utilisant Homebrew):

Sudo launchctl unload -w <file>

Si vous voulez quand même tuer le processus et qu'il n'utilise pas le démarrage automatique, n'oubliez pas de ne pas utiliser kill -9 <PID>, cela peut endommager la base de données. kill -1 <PID> ou kill -15 <PID> devrait être une option sûre.

1
JohnP