Comment arrêter mongo DB en une seule commande
J'ai besoin d'être en mesure de démarrer/arrêter MongoDB sur la cli. Il est assez simple pour commencer:
./mongod
Mais pour arrêter de mongo DB, j'ai besoin d'exécuter ouvrir mongo shell et tapez ensuite deux commandes:
$ ./mongo
utiliser admin
db.shutdownServer()
Donc je ne sais pas comment faire pour arrêter de mongo DB en une seule ligne. Toute aide?
Vous devez vous connecter pour publier un commentaire.
Démarrage et Arrêt de MongoDB est couvert dans la MongoDB manuel. Il explique les différentes options de l'arrêt de MongoDB à travers la coquille, de la cli, de chauffeurs, etc. Il détaille également les risques de manière incorrecte l'arrêt de MongoDB (tels que la corruption de données) et des discussions sur les différents tuer des signaux.
En outre, si vous avez installé MongoDB à l'aide d'un gestionnaire de paquets pour Ubuntu ou Debian ensuite, vous pouvez cesser de mongodb (précédemment mongod) comme suit:
Arriviste:
sudo service mongodb stop
Sysvinit:
sudo /etc/init.d/mongodb stop
Ou sur Mac OS X
Trouver le PID de mongod processus à l'aide de
$ top
Tuer le processus par
$ kill <PID>
(les Mongo docs avoir plus d'infos sur cette)Ou sur Red Hat systèmes à base de:
service mongod stop
Ou sur Windows si vous avez installé comme un service nommé
MongoDB
:net stop MongoDB
Et si il n'est pas installé comme un service (comme de Windows 7+), vous pouvez exécuter:
taskkill /f /im mongod.exe
Pour en savoir plus sur les problèmes de l'impur arrêt, à la meilleure manière d'éviter un tel scénario et quoi faire en cas d'impur, de l'arrêt, voir: Récupérer des Données après un Arrêt Inattendu.
sudo service mongodb [start|stop|restart|status]
.sudo service stop mongodb
résultats dans: stop: unrecognized servicemongod
au premier plan, do PAS utiliser CTRL-C pour l'arrêter, ce qui pourrait entraîner la perte de données.Si vous avez littéralement veux un équivalent de ligne aux commandes de votre question initiale, vous pourriez alias:
mongo --eval "db.getSiblingDB('admin').shutdownServer()"
Marque sa réponse sur le démarrage et l'arrêt MongoDB par l'intermédiaire des services est le plus typique (et recommandé) de façon administrative.
start C:\mongodb\bin\mongod.exe --config C:\net2\primary1-pc\mongod.cfg start C:\mongodb\bin\mongod.exe --config C:\net2\secondary1-pc\mongod.cfg ...
et ensuite de l'arrêt.chauve-sourisC:\mongodb\bin\mongo.exe --eval "db.getSiblingDB('admin').shutdownServer()" --port 27017 C:\mongodb\bin\mongo.exe --eval "db.getSiblingDB('admin').shutdownServer()" --port 27018 C:\mongodb\bin\mongo.exe --eval "db.getSiblingDB('admin').shutdownServer()" --port 27019 ...
net stop MongoDB
n'était pas fiable, j'ai donc utilisé de quelque chose de similaire:mongo admin --eval "db.shutdownServer()"
. Cheers!mongod --dbpath /path/to/your/db --shutdown
Plus d'info officielle: http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/
mongod v3.4.10
:Error parsing command line: unrecognised option '--shutdown'
🙁db.shutdownServer({force:1,timeoutSecs:0})
qui inhibent le rinçage de données restantes pour les secondaires. Vous pourriez ne pas toujours envie que.Si le serveur s'exécute en tant que processus d'arrière-plan dans un terminal, ce qui peut être fait en appuyant sur
D'une autre manière à proprement arrêter un serveur en cours d'exécution est d'utiliser la commande shutdown,
Sinon, la commande kill peut être utilisé pour envoyer des
le signal. Si mongod a 10014 comme son PID, la commande serait
J'ai suivi le fonctionnaire MongoDB documentation pour s'arrêter avec les signaux. L'une des commandes suivantes peuvent être utilisées (PID représente la
Process ID
de lamongod
processus):qui envoie le signal 15 (SIGTERM), ou
qui envoie le signal 2 (SIGINT).
Si vous avez plus d'une instance en cours ou que vous n'avez pas de soins sur le PID, vous pouvez utiliser
pkill
pour envoyer le signal à toutes lesmongod
processus:ou
ou, beaucoup plus sûr, que sur les processus appartenant à vous:
ou
PS
Note: j'ai eu recours à cette option, car
mongod --shutdown
, bien que mentionné dans le courant MongoDB documentation, curieusement, ne fonctionne pas sur ma machine (macOS, mongodb v3.4.10, installé avechomebrew
):Error parsing command line: unrecognised option '--shutdown'
PPS
(macOS spécifique) Avant tout le monde des merveilles: non, je ne pouvais pas l'arrêter avec la commande
brew services stop mongodb
parce que je ne l'ai pas commencer avec
brew services start mongodb
.J'avais commencé
mongod
avec une ligne de commande personnalisée 🙂Utilisation
mongod --shutdown
Selon la doc officielle : gérer-mongodb-processus/
😀
L'un des paquebots de démarrer ou d'arrêter mongodb service à l'aide de la ligne de commande;
NET START MONGODB
NET STOP MONGODB
J'utilise moi-même, il ne fonctionne pas.
créer un fichier appelé mongostop.chauve-souris
enregistrer le code suivant dans il
exécuter le fichier mongostop.chauve-souris et vous avez réussi à avoir mongo arrêté
De commandes, je pense que vous êtes sur Linux.
Commencer MongoDB:
Vérifier l'État:
Arrêter MongoDB:
Mon cas particulier:
déjà commencer mongod par:
maintenant, voulez arrêter
mongod
.et reportez-vous officiel doc Arrêter mongod Processus, a essayé:
(1)
shutdownServer
mais a échoué:(2)
--shutdown
toujours échoué:(3) précédente commande de démarrage en ajoutant --arrêt:
(4) utilisation
service
pour arrêter:et
spectacle prévu
Active: inactive (dead)
maismongod
fait encore en cours d'exécution, pour pouvez voir le processus de ps:et enfin, vraiment arrêter mongod par:
jusqu'à présent, la racine de la cause: encore inconnu ...
espère solution ci-dessus est utile pour votre.
Je l'ai fait simplement:
quit();
Veuillez noter que je suis en utilisant mongo 3.0.
Mongo
dans la fenêtre de terminal sur votre mac, appuyez sur ctrl+c
CTRL + C
sur la ligne de commande de windows
Bâtiment sur la réponse de stennie:
J'ai trouvé que mongo a été d'essayer de se reconnecter à la base de données après que le serveur à l'arrêt, ce qui entraînerait un retard et les messages d'erreur. L'ajout de quitter() après l'arrêt des vitesses et réduit les messages, mais il ya encore un.
Je tiens aussi à ajouter du contexte je suis le démarrage et l'arrêt mongod dans le cadre de cas de test pour un autre code, l'enregistrement en tant que service n'est pas adapté au cas d'utilisation. Je suis l'espoir de se retrouver avec quelque chose qui fonctionne sur toutes les plateformes (ce testés sous windows pour le moment). Je suis en utilisant mongod 3.6.9
- Je utiliser ce script de démarrage sur Ubuntu.
Windows
Dans PowerShell, c'est:
Stop-Service MongoDB
Puis commencer à nouveau:
Start-Service MongoDB
Pour vérifier si il est démarré, lancez:
net start | findstr MongoDB
.Remarque: ci-Dessus suppose MongoDB est enregistré en tant que service.