Uruchamianie i zatrzymywanie MongoDB jest opisane w podręczniku MongoDB. Wyjaśnia różne opcje zatrzymywania MongoDB przez powłokę, kliknięcie, sterowniki itp. Zawiera również szczegółowe informacje na temat zagrożeń związanych z nieprawidłowym zatrzymaniem MongoDB (takich jak uszkodzenie danych) i omawia różne sygnały zabicia.
Dodatkowo, jeśli zainstalowałeś MongoDB przy użyciu menedżera pakietów dla Ubuntu lub Debian , możesz zatrzymać mongodb (obecnie mongod w ubuntu) w następujący sposób:
Lub w systemie Mac OS X
Lub w systemach opartych na Red Hat :
Lub w systemie Windows, jeśli zainstalowałeś jako usługę o nazwie MongoDB
:
A jeśli nie jest zainstalowany jako usługa (od Windows 7+), możesz uruchomić:
taskkill /f /im mongod.exe
Aby dowiedzieć się więcej o problemach związanych z nieczystym wyłączeniem, jak najlepiej uniknąć takiego scenariusza i co zrobić w przypadku nieczystego wyłączenia, zobacz: Odzyskiwanie danych po nieoczekiwanym wyłączeniu .
sudo service mongodb [start|stop|restart|status]
.sudo service stop mongodb
skutkuje: stop: nierozpoznana usługaJeśli dosłownie chcesz, aby jeden wiersz odpowiadał poleceniom z pierwotnego pytania, możesz alias:
mongo --eval "db.getSiblingDB('admin').shutdownServer()"
Odpowiedź Marka dotycząca uruchamiania i zatrzymywania MongoDB za pośrednictwem usług jest bardziej typowym (i zalecanym) podejściem administracyjnym.
źródło
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 ...
a następnie 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
nie był niezawodny, więc użyłem coś podobnego:mongo admin --eval "db.shutdownServer()"
. Twoje zdrowie!mongod --dbpath /path/to/your/db --shutdown
Więcej informacji na oficjalnym: http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/
źródło
mongod v3.4.10
:Error parsing command line: unrecognised option '--shutdown'
:-(db.shutdownServer({force:1,timeoutSecs:0})
powstrzymywał przepływ pozostałych danych do części wtórnych. Nie zawsze możesz tego chcieć.Jeśli serwer działa jako proces pierwszoplanowy w terminalu, można to zrobić naciskając
Innym sposobem czystego zamknięcia działającego serwera jest użycie polecenia shutdown,
W przeciwnym razie do wysłania sygnału można użyć polecenia typu kill. Jeśli mongod ma 10014 jako swój PID, polecenie byłoby takie
źródło
Postępowałem zgodnie z oficjalną dokumentacją MongoDB dotyczącą zatrzymywania się z sygnałami. Jednym z Mogą być stosowane następujące polecenia (PID reprezentuje
Process ID
wmongod
procesie)który wysyła sygnał 15 (SIGTERM) lub
który wysyła sygnał 2 (SIGINT).
Jeśli masz uruchomionych więcej niż jedną instancję lub nie obchodzi Cię PID, możesz użyć
pkill
do wysłania sygnału do wszystkich uruchomionychmongod
procesów:lub
lub, dużo bezpieczniej, tylko do procesów należących do Ciebie:
lub
Uwaga PS : skorzystałem z tej opcji, ponieważ
mongod --shutdown
chociaż wspomniano o tym w aktualnej dokumentacji MongoDB , co ciekawe, nie działa na moim komputerze (macOS, mongodb v3.4.10, zainstalowany zhomebrew
):Error parsing command line: unrecognised option '--shutdown'
PPS
(specyficzny dla macOS) Zanim ktoś się zastanowi: nie, nie mogłem go zatrzymać poleceniem,
brew services stop mongodb
ponieważ nie uruchomiłem go
brew services start mongodb
.Zacząłem
mongod
od niestandardowej linii poleceń :-)źródło
Posługiwać się
mongod --shutdown
Według oficjalnego dokumentu: manage-mongodb-Processes /
:RE
źródło
Mój przypadek szczególny to:
poprzednio uruchom mongod przez:
teraz chcę przestać
mongod
.i zapoznaj się z oficjalnym dokumentem Stop mongod Processes , próbował:
(1)
shutdownServer
ale nie powiodło się:(2)
--shutdown
nadal nie powiodło się:(3) dodanie poprzedniego polecenia startu - wyłączanie:
(4) użyj,
service
aby zatrzymać:i
show oczekiwane,
Active: inactive (dead)
alemongod
faktycznie nadal działa, ponieważ można zobaczyć proces z ps:i wreszcie naprawdę zatrzymaj mongod:
do tej pory główna przyczyna: wciąż nieznana ...
Mam nadzieję, że powyższe rozwiązanie jest przydatne dla twojego.
źródło
utwórz plik o nazwie mongostop.bat
zapisz w nim następujący kod
uruchom plik mongostop.bat i pomyślnie zatrzymałeś mongo
źródło
Jedna linijka do uruchamiania lub zatrzymywania usługi mongodb za pomocą wiersza poleceń;
NET START MONGODB
NET STOP MONGODB
Sam tego używam, to działa.
źródło
Z podanych poleceń myślę, że jesteś na Linuksie.
Uruchom MongoDB:
Sprawdzić stan:
Zatrzymaj MongoDB:
źródło
Opierając się na odpowiedzi od Stennie:
Okazało się, że mongo próbowało ponownie połączyć się z bazą danych po wyłączeniu serwera, co powodowało opóźnienia i komunikaty o błędach. Dodanie quit () po zamknięciu systemu przyspiesza działanie i redukuje komunikaty, ale wciąż jest jeden.
Chcę też dodać kontekst - uruchamiam i zatrzymuję mongod w ramach przypadków testowych dla innego kodu, więc rejestracja jako usługa nie pasuje do przypadku użycia. Mam nadzieję, że w końcu uda mi się uzyskać coś, co działa na wszystkich platformach (testowane teraz w systemie Windows). Używam mongod 3.6.9
źródło
Po prostu zrobiłem:
quit();
Uwaga: używam mongo 3.0.
Mongo
źródło
W oknie terminala na Macu naciśnij Ctrl + C
źródło
Korzystanie z homebrew (zalecany sposób):
Zacząć:
brew services start mongodb-community
Zatrzymać:
brew services stop mongodb-community
źródło
Używam tego skryptu startowego na Ubuntu.
źródło
Windows
W PowerShell jest to:
Stop-Service MongoDB
Następnie, aby rozpocząć od nowa:
Start-Service MongoDB
Aby sprawdzić, czy to się zaczęło, uruchom:
net start | findstr MongoDB
.Uwaga: powyżej założono, że MongoDB jest zarejestrowany jako usługa .
źródło
Prosimy o skorzystanie z Menedżera zadań dostarczonego przez system operacyjny, aby uzyskać szybkie i łatwe rozwiązanie. Poniżej znajduje się zrzut ekranu z / dla Windows 10. Kliknij prawym przyciskiem myszy podświetlony proces i wybierz zatrzymaj . Wybierz start , jeśli już został zatrzymany.
Uwaga: wewnętrznie polecenia robią to samo, co musisz zrobić ręcznie za pomocą GUI (Menedżera zadań), dostarczanego przez system Windows / system operacyjny. Jednak to podejście powinno być używane do nauki / ćwiczeń, aby rozpocząć, i nie zostaniesz z tego powodu zablokowany.
źródło
CTRL + C
w wierszu poleceń systemu Windows
źródło