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

时间:2014-01-29 12:25:55

标签: macos mongodb administration

我是Mongo的新人。我按照mongodhere所述运行Mac OS X。我从命令行运行两个mongod进程。如果我需要停止mongod进程,我只需执行kill <pid of mongod>。是否建议停止mongod

11 个答案:

答案 0 :(得分: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 命令轻松运行它。

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

至少如果您手动启动mongo(例如使用--fork选项),这是有效的。

答案 1 :(得分:30)

终于成功了(Ubuntu 15.04)

// 1.按名称查找流程:

$ pgrep mongo

1350

// 2.kill mongod-process

$ kill 1350

答案 2 :(得分:15)

Esa接受的答案是正确的。此外,关于是否建议使用kill - 是的,但是使用标记-2或没有标记,请不要使用-9。如docs中所述。

kill -2 `pgrep mongo`

<强>别名

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

答案 3 :(得分: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/

答案 4 :(得分:3)

对于2020年:

Mongo应该通过Brew安装,而不是Linux上的老派风格:即tar.gz包download / uncompress / configure / run。

以酿造的方式,如果Mongo由data("Wage", package = "ISLR") str(Wage) head(Wage) y <- lm(wage~year+age+maritl+race+education+jobclass+health+health_ins, data= Wage) library(modelr) Wage$age[30:20] MM<-model.matrix(age~education, data= Wage) Wage2 <- cbind(Wage[,1:4], MM) head(Wage2) brew tap mongodb/brew安装,则可以像在Linux上的Systemd一样执行以下操作来停止(并禁用)它。

brew install mongodb-community

答案 5 :(得分:2)

这个命令可以帮助杀死mongod进程。 sudo pkill -f mongod

答案 6 :(得分:1)

刚刚遇到一个问题&#34;只是杀死了mongod&#34;在mac ...

  1. mongod通过&#34; launchctl&#34;作为服务继续运行。在mac系统中。 &#34;刚刚杀死&#34;它将杀死该服务。

  2. 现在使用mongo shell我们再次做mongod,但是对于其他开发目的,比如从节点连接,我们需要确保一次又一次地运行mongod。

  3. 其他选择是关闭系统并重新开始。

  4. 更好的方式:

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

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

答案 7 :(得分:1)

最简单的方法是Ctrl + C,它适用于El Capitan下的阻塞bash shell。

答案 8 :(得分:1)

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

来查找文件

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

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

sudo launchctl unload -w <file>

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

答案 9 :(得分:1)

terminal $ kill $(pgrep mongod)

答案 10 :(得分:0)

https://docs.mongodb.com/manual/tutorial/manage-mongodb-processes/

官方指南

请记住不要使用kill -9

否则,您可能需要删除dbpath中的锁定文件