Das Starten und Stoppen von MongoDB wird im MongoDB-Handbuch behandelt. Es werden die verschiedenen Optionen zum Stoppen von MongoDB über die Shell, CLI, Treiber usw. erläutert. Außerdem werden die Risiken eines falschen Stopps von MongoDB (z. B. Datenkorruption) beschrieben und die verschiedenen Kill-Signale erläutert.
Wenn Sie MongoDB mit einem Paketmanager für Ubuntu oder Debian installiert haben , können Sie mongodb (derzeit mongod in ubuntu) wie folgt stoppen:
Oder unter Mac OS X.
Oder auf Red Hat- basierten Systemen:
Oder unter Windows, wenn Sie einen Dienst mit dem Namen installiert haben MongoDB
:
Und wenn Sie nicht als Dienst installiert sind (ab Windows 7+), können Sie Folgendes ausführen:
taskkill /f /im mongod.exe
Weitere Informationen zu den Problemen eines unreinen Herunterfahrens, zur Vermeidung eines solchen Szenarios und zur Vorgehensweise bei einem unreinen Herunterfahren finden Sie unter: Wiederherstellen von Daten nach einem unerwarteten Herunterfahren .
sudo service mongodb [start|stop|restart|status]
.sudo service stop mongodb
Ergebnisse in: Stop: nicht erkannter DienstWenn Sie buchstäblich eine Zeile wünschen, die den Befehlen in Ihrer ursprünglichen Frage entspricht, können Sie einen Alias verwenden:
mongo --eval "db.getSiblingDB('admin').shutdownServer()"
Marks Antwort zum Starten und Stoppen von MongoDB über Dienste ist der typischere (und empfohlene) Verwaltungsansatz.
quelle
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 ...
und dann hat shutdown.batC:\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
nicht zuverlässig war, und verwendete daher etwas Ähnliches :mongo admin --eval "db.shutdownServer()"
. Prost!mongod --dbpath /path/to/your/db --shutdown
Weitere Informationen unter offiziell: http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/
quelle
mongod v3.4.10
:Error parsing command line: unrecognised option '--shutdown'
:-(db.shutdownServer({force:1,timeoutSecs:0})
würde es das Löschen der verbleibenden Daten auf die Sekundärdaten verhindern. Das möchten Sie vielleicht nicht immer.Wenn der Server als Vordergrundprozess in einem Terminal ausgeführt wird, kann dies durch Drücken von erfolgen
Eine andere Möglichkeit, einen laufenden Server sauber herunterzufahren, ist die Verwendung des Befehls shutdown.
Andernfalls kann ein Befehl wie kill verwendet werden, um das Signal zu senden. Wenn Mongod 10014 als PID hat, wäre der Befehl
quelle
Ich folgte der offiziellen MongoDB-Dokumentation, um mit Signalen anzuhalten. Einer der folgenden Befehle kann verwendet werden (PID steht
Process ID
für denmongod
Prozess):welches das Signal 15 (SIGTERM) sendet, oder
welches Signal 2 (SIGINT) sendet.
Wenn mehr als eine Instanz ausgeführt wird oder Sie sich nicht für die PID interessieren, können Sie
pkill
das Signal an alle ausgeführtenmongod
Prozesse senden :oder
oder viel sicherer nur für die Prozesse, die Ihnen gehören:
oder
PS
Hinweis: Ich habe auf diese Option zurückgegriffen, da sie
mongod --shutdown
, obwohl in der aktuellen MongoDB-Dokumentation erwähnt , auf meinem Computer (macOS, mongodb v3.4.10, installiert mithomebrew
) seltsamerweise nicht funktioniert :Error parsing command line: unrecognised option '--shutdown'
PPS
(macOS-spezifisch) Bevor sich jemand fragt: Nein, ich konnte es nicht mit einem Befehl stoppen,
brew services stop mongodb
weil ich es nicht gestartet habe
brew services start mongodb
.Ich hatte
mongod
mit einer benutzerdefinierten Befehlszeile begonnen :-)quelle
Verwenden
mongod --shutdown
Laut offiziellem Dokument: Managing-Mongodb-Prozesse /
: D.
quelle
Mein Sonderfall ist:
zuvor mongod starten von:
jetzt will aufhören
mongod
.und beziehen Sie sich auf offizielles Dokument Stop mongod Processes , hat versucht:
(1)
shutdownServer
aber fehlgeschlagen:(2)
--shutdown
immer noch fehlgeschlagen:(3) vorheriger Startbefehl, der --shutdown hinzufügt:
(4) verwenden
service
, um zu stoppen:und
show erwartet
Active: inactive (dead)
, läuft abermongod
tatsächlich noch , denn Prozess von ps kann man sehen:und schließlich wirklich aufhören mongod vorbei:
bis jetzt Grundursache: noch unbekannt ...
Hoffnung oben Lösung ist nützlich für Ihre.
quelle
Erstellen Sie eine Datei mit dem Namen mongostop.bat
Speichern Sie den folgenden Code darin
Führen Sie die Datei mongostop.bat aus und Sie haben mongo erfolgreich gestoppt
quelle
Ein Liner zum Starten oder Stoppen des Mongodb-Dienstes über die Befehlszeile;
NET START MONGODB
NET STOP MONGODB
Ich benutze das selbst, es funktioniert.
quelle
Von den gegebenen Befehlen denke ich, dass Sie unter Linux sind.
Starten Sie MongoDB:
Überprüfen Sie den Status:
Stop MongoDB:
quelle
Aufbauend auf der Antwort von stennie:
Ich stellte fest, dass Mongo nach dem Herunterfahren des Servers versuchte, die Verbindung zur Datenbank wiederherzustellen, was zu Verzögerungen und Fehlermeldungen führen würde. Das Hinzufügen von quit () nach dem Herunterfahren beschleunigt und reduziert die Nachrichten, aber es gibt noch eine.
Ich möchte auch Kontext hinzufügen - ich starte und stoppe mongod als Teil von Testfällen für anderen Code, sodass die Registrierung als Dienst nicht zum Anwendungsfall passt. Ich hoffe, dass ich etwas bekomme, das auf allen Plattformen läuft (dies wird derzeit in Windows getestet). Ich benutze Mongod 3.6.9
quelle
Ich habe einfach getan:
quit();
Bitte beachten Sie, dass ich Mongo 3.0 verwende.
Mongo
quelle
Drücken Sie im Terminalfenster Ihres Mac Strg + c
quelle
Verwenden von Homebrew (empfohlener Weg):
Anfangen:
brew services start mongodb-community
Stoppen:
brew services stop mongodb-community
quelle
Ich benutze dieses Startskript unter Ubuntu.
quelle
Windows
In PowerShell ist es:
Stop-Service MongoDB
Dann, um es erneut zu starten:
Start-Service MongoDB
Führen Sie Folgendes aus, um zu überprüfen, ob es gestartet wurde :
net start | findstr MongoDB
.Hinweis: Oben wird davon ausgegangen, dass MongoDB als Dienst registriert ist .
quelle
Nutzen Sie den Task-Manager Ihres Betriebssystems für eine schnelle und einfache Lösung. Unten sehen Sie das Screenshot von / für Windows 10. Klicken Sie mit der rechten Maustaste auf den markierten Prozess und wählen Sie Stopp . Wählen Sie Start , falls bereits gestoppt.
Bitte beachten Sie: Intern tun die Befehle dasselbe, was Sie manuell über eine von Windows / Ihrem Betriebssystem bereitgestellte GUI (Task Manager) tun müssen. Dieser Ansatz sollte jedoch für Studien- / Übungszwecke verwendet werden, um zu beginnen, und Sie werden aufgrund dessen nicht blockiert.
quelle
STRG + C.
in der Windows-Befehlszeile
quelle