【发布时间】:2014-01-29 12:25:55
【问题描述】:
我是 Mongo 的新手。我正在运行mongod,如Mac OS X 中的here 所述。我正在从命令行运行两个mongod 进程。如果我需要停止mongod 进程,我只需执行kill <pid of mongod>。这是停止mongod的推荐方式吗?
【问题讨论】:
标签: macos mongodb administration
我是 Mongo 的新手。我正在运行mongod,如Mac OS X 中的here 所述。我正在从命令行运行两个mongod 进程。如果我需要停止mongod 进程,我只需执行kill <pid of mongod>。这是停止mongod的推荐方式吗?
【问题讨论】:
标签: macos mongodb administration
终于成功了(Ubuntu 15.04)
//1.按名称查找进程:
$ pgrep mongo
1350
//2.kill mongod进程
$ kill 1350
【讨论】:
sudo。我在 macOS Catalina 上
这已经很晚了,但我现在遇到了同样的问题,我找到了一种简单的方法:
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 选项)。
【讨论】:
Esa 接受的答案是正确的。此外,关于是否建议使用 kill - 是的,但带有标志 -2 或没有标志,切勿使用 -9。如docs中所述。
kill -2 `pgrep mongo`
别名
alias stopmongo='kill -2 `pgrep mongo`'
【讨论】:
Windows
use admin
db.shutdownServer()
对于启用了身份验证的系统,用户只能在通过 admin 数据库身份验证或通过未启用身份验证的系统上的本地主机接口时发出 db.shutdownServer()。
Linux
mongod --shutdown
你也可以使用
kill <mongod process ID>
见http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/
【讨论】:
Mongo。有趣的是mongod 在 Mac 中没有 shutdown 选项 :((
2020 年:
Mongo 应该通过 Brew 安装,而不是 linux 上的老式风格:即 tar.gz 包下载/解压缩/配置/运行。
在 brew 方式中,如果 Mongo 是由 brew tap mongodb/brew 和 brew install mongodb-community 安装的,您可以像 Linux 上的 Systemd 一样停止(和禁用)它。
~ brew services list
Name Status User Plist
mongodb-community started zhengxin /Users/zhengxin/Library/LaunchAgents/homebrew.mxcl.mongodb-community.plist
~ brew services stop mongodb-community
==> Successfully stopped `mongodb-community` (label: homebrew.mxcl.mongodb-community)
【讨论】:
终端$ kill $(pgrep mongod)
【讨论】:
这个命令可以帮助杀死 mongod 进程。 sudo pkill -f mongod
【讨论】:
刚刚在mac中遇到了“刚刚杀死mongod”的问题......
在 mac 系统中,mongod 通过“launchctl”作为服务保持运行。 “只是杀死”它将杀死该服务。
现在要使用 mongo shell,我们再次执行 mongod,但是对于其他开发目的,例如从节点连接,我们需要确保一次又一次地运行 mongod。
另一种选择是关闭系统并重新启动。
更好的方法:
开始使用 launchctl 来管理此类服务。这是一个例子:
What is the correct way to start a mongod service on linux / OS X?
【讨论】:
最简单的方法是Ctrl + C,它在 El Capitan 下的阻塞 bash shell 上对我有用。
【讨论】:
如果你配置了自动启动,杀掉进程没有用,新的进程会立即启动。为了禁用自动启动,您必须首先找到自动启动文件。您可以尝试使用例如查找文件
find / -name "mongodb.plist" 或 locate "mongodb.plist"
找到文件后,使用删除自动启动配置(您可以先尝试不使用sudo,如果您使用Homebrew完成安装则不需要):
sudo launchctl unload -w <file>
如果你想杀死进程并且它没有使用自动启动,记住不要使用kill -9 <PID>,它会损坏数据库。 kill -1 <PID> 或 kill -15 <PID> 应该是安全的选项。
【讨论】:
https://docs.mongodb.com/manual/tutorial/manage-mongodb-processes/
官方指南
记住不要使用 kill -9
否则可能需要删除 dbpath 中的锁定文件
【讨论】: