我可以杀死mongod来阻止mongo吗?

问题描述 投票:24回答:8

我是Mongo的新人。我在mongod中描述here正在运行Mac OS X。我从命令行运行两个mongod进程。如果我需要停止mongod进程,我只需执行kill <pid of mongod>。这是阻止mongod的推荐方法吗?

macos mongodb administration
8个回答
35
投票

这已经很晚了,但我现在遇到了同样的问题,我发现了一个简单的方法:

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...

它给出了一些奇怪的信息,但它有效。

我制作了alias-command来轻松运行它。

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

这至少在您手动启动mongo时起作用(例如使用--fork选项)。


30
投票

它终于成功了(Ubuntu 15.04)

//1.find过程名称:

$ pgrep mongo

1350

//2.kill mongod-process

$ kill 1350

15
投票

Esa接受的答案是正确的。此外,关于是否建议使用杀戮 - 是的,但使用标志-2或没有标志,从不使用-9。正如docs中提到的那样。

kill -2 `pgrep mongo`

别号

alias stopmongo='kill -2 `pgrep mongo`'

4
投票

视窗

use admin
db.shutdownServer()

对于启用了auth的系统,用户只能在对管理数据库进行身份验证时或在未启用身份验证的系统上通过localhost接口发出db.shutdownServer()。

Linux的

mongod --shutdown

你也可以用

kill <mongod process ID> 

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


1
投票

刚刚在mac中遇到了“只是杀死mongodb”的问题

  1. mongod通过mac系统中的“launchctl”作为服务运行。 “只是杀死”它会杀死那项服务。
  2. 现在使用mongo shell我们再次做mongod,但是对于其他开发目的,比如从节点连接,我们需要确保一次又一次地运行mongod。
  3. 其他替代方案是关闭系统并重新启动。

更好的方法 :

开始使用launchctl来管理此类服务。这是一个例子:

What is the correct way to start a mongod service on linux / OS X?


1
投票

最简单的方法是Ctrl + C,它在El Capitan下的阻挡bash shell上为我工作。


1
投票

如果您已配置自动启动,则终止该进程将无济于事,新的将立即启动。要禁用自动启动,您必须先找到自动启动文件。您可以尝试使用例如

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

找到文件后,删除自动启动配置(您可以先尝试不使用sudo,如果您使用Homebrew完成安装则不需要):

sudo launchctl unload -w <file>

如果你想杀死进程并且它没有使用自动启动,请记住不要使用kill -9 <PID>,它可能会损坏数据库。 kill -1 <PID>kill -15 <PID>应该是安全的选择。


1
投票

终端$ kill $(pgrep mongod)

© www.soinside.com 2019 - 2024. All rights reserved.