什么是在Mac OS X上停止mongod的干净方式?
我正在运行mongo 1.8.2并试图看看如何在Mac上彻底closures它。
在我们的Ubuntu服务器上,我可以用mongo shell彻底closuresmongo:
> use admin > db.shutdownServer()
但在我的Mac上,它并没有杀死mongod进程。 输出显示它应该是关机,但是当我ps -ef | grep mongo它显示了我一个活跃的过程。 另外,我仍然可以打开一个mongo shell并查询我的dbs,因为它从来没有关机。
本地db.shutdownServer()的输出是:
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
我知道我可以杀死这个过程,但我想更干净地做。
这可能是因为launchctl正在pipe理你的mongod实例。 如果你想启动和closuresmongod实例,首先卸载:
launchctl unload -w ~/Library/LaunchAgents/org.mongodb.mongod.plist
然后手动启动mongod:
mongod -f path/to/mongod.conf --fork
你可以从~/Library/LaunchAgents/org.mongodb.mongod.plist
find你的mongod.conf位置。
之后, db.shutdownServer()
将工作得很好。
2014年2月22日新增:
如果你用自制软件安装了mongodb,那么家酿实际上就有一个方便的brew services
命令。 显示当前正在运行的服务:
brew services list
开始mongodb:
brew services start mongodb
要停止mongodb,如果它已经在运行:
brew services stop mongodb
更新
正如edufinn在评论中指出的那样, brew services
现在可以作为用户定义的命令使用,并且可以使用以下命令安装: brew tap gapple/services
。
如果你用自制软件安装了mongodb,有一个更简单的方法:
使用launchctl列出mongo作业:
launchctl list | grep mongo
停止mongo工作:
launchctl stop <job label>
(对我来说这是launchctl stop homebrew.mxcl.mongodb
)
开始mongo工作:
launchctl start <job label>
简单的方法是获取mongodb的进程ID并杀死它。 请注意不要使用kill -9 pid,因为这可能会损坏数据库。
所以,1.获得mongodb的pid
$ pgrep mongo
你会得到mongo的pid,现在
$ kill
你也可以使用kill -15
我更喜欢使用port
命令本身来停止MongoDB服务器。
sudo port unload mongodb
并重新开始。
sudo port load mongodb
看看这些文档:
如果你在一个terminal上启动它,你应该可以使用ctrl + 'c'
– 这样做会彻底closures。
但是,如果您使用的是launchctl,则具体说明将根据安装方式的不同而有所不同。
如果你使用的是自制launchctl stop homebrew.mxcl.mongodb
那么将会是launchctl stop homebrew.mxcl.mongodb
这是一个古老的问题,但也是我在search时发现的一个问题。
如果您使用brew
进行安装,那么解决scheme实际上是这样的:
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist