首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有什么干净利落的方法可以在Mac上阻止mongod?

有什么干净利落的方法可以在Mac上阻止mongod?
EN

Stack Overflow用户
提问于 2011-12-14 03:53:05
回答 9查看 121.9K关注 0票数 94

我正在运行mongo 1.8.2,并尝试查看如何在Mac上干净利落地关闭它。

在我们的ubuntu服务器上,我可以用以下命令从mongo shell中干净利落地关闭mongo:

代码语言:javascript
复制
> use admin
> db.shutdownServer()

但在我的Mac上,它不会杀死mongod进程。输出显示它“应该”关闭,但是当I ps -ef | grep mongo时,它显示了一个活动的进程。此外,我仍然可以打开mongo shell并查询我的数据库,就像它从未关闭过一样。

我的db.shutdownServer()在本地的输出是:

代码语言:javascript
复制
MongoDB shell version: 1.8.2
connecting to: test
> use admin                  
switched to db admin
> db.shutdownServer()
Tue Dec 13 11:44:21 DBClientCursor::init call() failed
Tue Dec 13 11:44:21 query failed : admin.$cmd { shutdown: 1.0 } to: 127.0.0.1
server should be down...
Tue Dec 13 11:44:21 trying reconnect to 127.0.0.1
Tue Dec 13 11:44:21 reconnect 127.0.0.1 failed couldn't connect to server 127.0.0.1
Tue Dec 13 11:44:21 Error: error doing query: unknown shell/collection.js:150

我知道我可以干掉这个进程,但我想做得更干净一些。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2011-12-14 13:12:16

这可能是因为launchctl正在管理您的mongod实例。如果您想启动和关闭mongod实例,请先卸载该实例:

代码语言:javascript
复制
launchctl unload -w ~/Library/LaunchAgents/org.mongodb.mongod.plist

然后手动启动mongod:

代码语言:javascript
复制
mongod -f path/to/mongod.conf --fork

你可以在~/Library/LaunchAgents/org.mongodb.mongod.plist上找到你的mongod.conf位置。

在那之后,db.shutdownServer()就可以正常工作了。

2014年2月22日新增:

如果你已经通过homebrew安装了mongodb,那么homebrew实际上有一个很方便的brew services命令。要显示当前正在运行的服务:

brew services list

启动mongodb:

brew services start mongodb-community

要在mongodb已经运行的情况下停止mongodb:

brew services stop mongodb-community

更新*

正如edufinn在评论中指出的那样,brew services现在可以作为用户定义的命令使用,并且可以使用以下命令进行安装:brew tap gapple/services

票数 191
EN

Stack Overflow用户

发布于 2014-02-13 08:57:53

如果你用homebrew安装了mongodb,有一种更简单的方法:

使用launchctl列出mongo作业:

代码语言:javascript
复制
launchctl list | grep mongo

停止mongo作业:

代码语言:javascript
复制
launchctl stop <job label>

(对我来说,这就是launchctl stop homebrew.mxcl.mongodb)

启动mongo作业:

代码语言:javascript
复制
launchctl start <job label>
票数 37
EN

Stack Overflow用户

发布于 2016-02-17 18:16:23

简单的方法是获取mongodb的进程id并杀死它。请注意,不要为此使用kill -9 pid,因为它可能会对数据库造成损坏。

因此,1.获取mongodb的pid

$ pgrep mongo

现在你会得到mongo的pid。

$ kill

您也可以使用kill -15

票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8495293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档