emi*_*zel 73 macos launchd mongodb
我正在运行mongo 1.8.2并试图看看如何在Mac上干净利落地关闭它.
在我们的ubuntu服务器上,我可以从mongo shell干净地关闭mongo:
> use admin
> db.shutdownServer()
Run Code Online (Sandbox Code Playgroud)
但在我的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
Run Code Online (Sandbox Code Playgroud)
我知道我可以杀死这个过程,但我想干得更干净.
Jam*_*hen 156
这可能是因为launchctl正在管理你的mongod实例.如果要启动和关闭mongod实例,请先卸载该实例:
launchctl unload -w ~/Library/LaunchAgents/org.mongodb.mongod.plist
Run Code Online (Sandbox Code Playgroud)
然后手动启动mongod:
mongod -f path/to/mongod.conf --fork
Run Code Online (Sandbox Code Playgroud)
你可以找到你的mongod.conf位置~/Library/LaunchAgents/org.mongodb.mongod.plist.
在那之后,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.
Rap*_*ael 26
如果您使用自制软件安装mongodb,则有一种更简单的方法:
使用launchctl列出mongo作业:
launchctl list | grep mongo
Run Code Online (Sandbox Code Playgroud)
停止mongo工作:
launchctl stop <job label>
Run Code Online (Sandbox Code Playgroud)
(对我来说这是launchctl stop homebrew.mxcl.mongodb)
启动mongo工作:
launchctl start <job label>
Run Code Online (Sandbox Code Playgroud)
小智 20
简单的方法是获取mongodb的进程ID并将其杀死.请注意,请勿使用kill -9 pid,因为它可能会对数据库造成损害.
所以,1.得到mongodb的pid
$ pgrep mongo
你会得到mongo的pid,现在
$ kill
你也可以使用kill -15
the*_*ker 15
如果您已经通过自制软件安装了 mongodb 社区服务器,那么您可以执行以下操作:
brew services list
Run Code Online (Sandbox Code Playgroud)
这将列出当前的服务如下:
Name Status User Plist
mongodb-community started thehaystacker /Users/thehaystacker/Library/LaunchAgents/homebrew.mxcl.mongodb-community.plist
redis stopped
Run Code Online (Sandbox Code Playgroud)
然后您可以通过先停止并重新启动来重新启动mongodb:
brew services stop mongodb
brew services start mongodb
Run Code Online (Sandbox Code Playgroud)
我更喜欢使用命令本身来停止 MongoDB 服务器port。
sudo port unload mongodb
Run Code Online (Sandbox Code Playgroud)
并重新开始。
sudo port load mongodb
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
93556 次 |
| 最近记录: |