Mogę zabić mongoda, żeby powstrzymać mongo?

Jestem nowy w Mongo. Biegnę mongod zgodnie z opisem tutaj W Mac OS X. Uruchamiam dwa procesy mongod z linii poleceń. Jeśli muszę zatrzymać mongod procesy po prostu wykonuję kill <pid of mongod>. Czy jest to zalecany sposób na zatrzymanie mongod?

Author: Michael, 2014-01-29

8 answers

To jest dość późno, ale miałem ten sam problem teraz, i znalazłem jeden łatwy sposób:

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...
Daje dziwne wiadomości, ale działa.

I zrobiłem alias - polecenie do łatwego uruchamiania.

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

Działa to przynajmniej jeśli uruchomisz Mongo ręcznie (np. z opcją --fork).

 31
Author: Esa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-19 09:07:31

W końcu udało się (Ubuntu 15.04) z

//1.znajdź proces po nazwie:

$ pgrep mongo

1350

//2.kill mongod-proces

$ kill 1350
 23
Author: Mailis Toompuu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-31 19:40:18

Odpowiedź przyjęta przez Esa jest prawidłowa. Ponadto, jeśli chodzi o to, czy zalecane jest użycie kill-tak, ale z flagą -2 lub bez flagi, nigdy nie używaj -9. Jak wspomniano w docs .

kill -2 `pgrep mongo`

Alias

alias stopmongo='kill -2 `pgrep mongo`'
 11
Author: saurabheights,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-25 23:36:26

Windows

use admin
db.shutdownServer()

Dla Systemów z włączonym auth, użytkownicy mogą wydawać tylko db.shutdownServer() po uwierzytelnieniu do bazy danych administratora lub przez interfejs localhost w systemach bez włączonego uwierzytelniania.

Linux

mongod --shutdown

Możesz również użyć

kill <mongod process ID> 

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

 4
Author: jcrada,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-29 12:29:35

Najprostszym sposobem jest Ctrl + C, który zadziałał u mnie na blokującej powłoce bash pod El Capitan.

 2
Author: Marshall Farrier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-17 01:07:32

Właśnie napotkałem problem z "just killing the mongod" w mac...

  1. Mongod jest nadal uruchomiony jako usługa przez "launchctl" w systemach mac. "just killing" to zabije tę służbę.

  2. Teraz, aby użyć powłoki mongo, robimy mongod ponownie, jednak w innych celach programistycznych, takich jak łączenie z węzła, musimy upewnić się, że uruchamiamy mongod raz po raz.

  3. Inną alternatywą jest wyłączenie systemu i ponowne uruchomienie.

Better Sposób:

Zacznij używać launchctl do zarządzania takimi usługami. Oto przykład:

Jaki jest prawidłowy sposób uruchomienia usługi mongod na Linuksie / OS X?

 1
Author: daksh_019,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:11

Jeśli skonfigurowałeś autostart, zabicie procesu nie pomoże, Nowy rozpocznie się natychmiast. Aby wyłączyć autostart, musisz najpierw zlokalizować plik autostartu. Możesz spróbować znaleźć plik używając np.

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

Po znalezieniu pliku usuń konfigurację autostartu używając (możesz najpierw spróbować Bez sudo, nie jest to potrzebne, jeśli wykonałeś instalację za pomocą Homebrew):

sudo launchctl unload -w <file>

Jeśli i tak chcesz zabić proces i nie używa autostart, pamiętaj, aby nie używać kill -9 <PID>, może to uszkodzić db. kill -1 <PID> lub kill -15 <PID> powinny być bezpiecznymi opcjami.

 1
Author: JohnP,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-27 12:58:39

Terminal$ kill $(pgrep)

 1
Author: seunggabi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-30 07:13:53