106 votes

Quelle est la meilleure façon d'arrêter mongod proprement sur Mac OS X ?

Je fais tourner mongo 1.8.2 et j'essaie de voir comment l'arrêter proprement sur Mac.

sur nos serveurs Ubuntu, je peux arrêter mongo correctement depuis le shell mongo avec:

> use admin
> db.shutdownServer()

mais sur mon Mac, cela ne tue pas le processus mongod. la sortie montre qu'il 'devrait être' arrêté mais lorsque je fais ps -ef | grep mongo, cela me montre un processus actif. de plus, je peux toujours ouvrir un shell mongo et interroger mes bds comme si cela n'avait jamais été arrêté.

la sortie de mon db.shutdownServer() en local est:

Version du shell MongoDB : 1.8.2
connexion à : test
> use admin                  
passé à la base de données admin
> db.shutdownServer()
Tue Dec 13 11:44:21 DBClientCursor::init call() a échoué
Tue Dec 13 11:44:21 la requête a échoué : admin.$cmd { shutdown: 1.0 } vers : 127.0.0.1
le serveur devrait être arrêté...
Tue Dec 13 11:44:21 tentatives de reconnexion à 127.0.0.1
Tue Dec 13 11:44:21 reconnexion à 127.0.0.1 a échoué impossible de se connecter au serveur 127.0.0.1
Tue Dec 13 11:44:21 Erreur : erreur lors de la requête : inconnu shell/collection.js:150

je sais que je peux simplement tuer le processus mais j'aimerais le faire de manière plus propre.

214voto

James Chen Points 4867

C'est probablement parce que launchctl gère votre instance mongod. Si vous voulez démarrer et arrêter l'instance mongod, déchargez-la d'abord :

launchctl unload -w ~/Library/LaunchAgents/org.mongodb.mongod.plist

Ensuite, démarrez mongod manuellement :

mongod -f chemin/vers/mongod.conf --fork

Vous pouvez trouver l'emplacement de votre mongod.conf à partir de ~/Library/LaunchAgents/org.mongodb.mongod.plist.

Après cela, db.shutdownServer() fonctionnerait parfaitement.

Ajouté le 22 février 2014 :

Si vous avez installé mongodb via homebrew, homebrew a en fait une commande pratique brew services. Pour afficher les services actuellement en cours d'exécution :

brew services list

Pour démarrer mongodb :

brew services start mongodb-community

Pour arrêter mongodb s'il est déjà en cours d'exécution :

brew services stop mongodb-community

Mise à jour*

Comme l'a souligné edufinn dans le commentaire, brew services est désormais disponible en tant que commande définie par l'utilisateur et peut être installé avec la commande suivante : brew tap gapple/services.

47voto

raphaelcm Points 698

Si vous avez installé mongodb avec homebrew, il y a une façon plus facile :

Listez le travail mongo avec launchctl :

launchctl list | grep mongo

Arrêtez le travail mongo :

launchctl stop 

(Pour moi, c'est launchctl stop homebrew.mxcl.mongodb)

Démarrez le travail mongo :

launchctl start

28voto

Sanchit Singhania Points 477

La manière simple est d'obtenir l'identifiant de processus de mongodb et de le tuer. Veuillez noter NE PAS UTILISER kill -9 pid pour cela car cela pourrait endommager la base de données.

donc, 1. obtenez l'identifiant de processus de mongodb

$ pgrep mongo

vous obtiendrez l'identifiant de processus de mongo, Maintenant

$ kill

Vous pouvez également utiliser kill -15

26voto

iamsangeeth Points 182

Si vous avez installé le serveur communautaire mongodb via homebrew, vous pouvez faire :

brew services list

Cela listera les services actuels comme ci-dessous :

Nom               Statut   Utilisateur     Plist
mongodb-communauté démarré  /Users//Library/LaunchAgents/homebrew.mxcl.mongodb-communauté.plist

redis             arrêté

Ensuite, vous pouvez redémarrer mongodb en arrêtant d'abord et en redémarrant :

brew services stop mongodb
brew services start mongodb

5voto

Rafa Points 2010

Je préfère arrêter le serveur MongoDB en utilisant la commande port elle-même.

sudo port unload mongodb

Et pour le redémarrer.

sudo port load mongodb

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