Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 我能杀了mongod阻止mongo吗?_Macos_Mongodb_Administration - Fatal编程技术网

Macos 我能杀了mongod阻止mongo吗?

Macos 我能杀了mongod阻止mongo吗?,macos,mongodb,administration,Macos,Mongodb,Administration,我在Mongo很新。我正在运行mongod,如macosx中所述。我正在从命令行运行两个mongod进程。如果我需要停止mongod进程,我只需执行kill。这是停止mongod的推荐方法吗?Windows use admin db.shutdownServer() alias stopmongo='kill -2 `pgrep mongo`' 对于启用了身份验证的系统,只有在未启用身份验证的系统上通过admin数据库或localhost接口进行身份验证时,用户才能发出db.shutdown

我在Mongo很新。我正在运行
mongod
,如
macosx
中所述。我正在从命令行运行两个
mongod
进程。如果我需要停止
mongod
进程,我只需执行
kill
。这是停止mongod的推荐方法吗?

Windows

use admin
db.shutdownServer()
alias stopmongo='kill -2 `pgrep mongo`'
对于启用了身份验证的系统,只有在未启用身份验证的系统上通过admin数据库或localhost接口进行身份验证时,用户才能发出db.shutdownServer()

Linux

mongod --shutdown
你也可以使用

kill <mongod process ID> 
杀死
参见

这已经很晚了,但我现在也遇到了同样的问题,我找到了一个简单的方法:

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选项)时有效。

刚刚在mac中遇到了一个关于“杀死mongod”的问题

  • mongod通过mac系统中的“launchctl”作为服务继续运行。“只是杀”它会杀了那个服务

  • 现在要使用MongoShell,我们需要再次使用mongod,但是为了其他开发目的,比如从节点连接,我们需要确保一次又一次地运行mongod

  • 另一种选择是关闭系统并重新启动

  • 更好的方法:

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

    它终于成功了(Ubuntu 15.04)

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

    $ pgrep mongo
    
    1350

    //2.2.2.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2

    $ kill 1350
    

    最简单的方法是
    Ctrl+C
    ,它在El Capitan下的一个阻塞bash shell上对我有效。

    Esa接受的答案是正确的。另外,关于是否建议使用kill-是,但使用标志
    -2
    或无标志时,切勿使用
    -9
    。如中所述

    别名

    use admin
    db.shutdownServer()
    
    alias stopmongo='kill -2 `pgrep mongo`'
    

    如果您已经配置了autostart,那么终止该进程将无济于事,新进程将立即启动。要禁用autostart,必须首先找到autostart文件。您可以尝试使用例如查找文件

    find/-name“mongodb.plist”
    locate“mongodb.plist”

    找到文件后,使用删除autostart配置(您可以先尝试不使用
    sudo
    ,如果您使用自制软件完成安装,则不需要此配置):

    sudo启动ctl卸载-w
    
    如果您想终止进程,但它没有使用autostart,请记住不要使用
    kill-9
    ,否则会损坏数据库
    kill-1或
    kill-15应为安全选项。

    终端$kill$(pgrep mongod)

    2020年:

    Mongo应该通过Brew安装,而不是linux上的老式风格:即tar.gz包下载/解压缩/配置/运行

    以brew方式,如果Mongo是通过
    brew点击mongodb/brew
    brew安装mongodb community
    安装的,您可以执行以下操作在Linux上停止(并禁用)它

    ~ 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-9


    否则,您可能需要删除dbpath中的锁文件。此命令有助于终止mongod进程
    sudopkill-f mongod

    谢谢。补充说我正在Mac中运行
    Mongo
    。有趣的是,
    mongod
    在Mac中没有
    shutdown
    选项:((请参见您的解释,我们需要使用-2。)flag@SujayUN-请查看答案中mongo官方文档的链接。这是mongo开发者推荐的。我提到的不使用-9的原因是AFAIK(不完美)这是一个终止信号,并立即终止应用程序。-2在外行术语中是一个软中断,它告诉mongo完成其关键任务,不要接受任何未来的数据R/W请求并退出。这可以防止数据损坏。有关信号的进一步阅读,请参阅在最坏情况下-2不起作用时必须使用-9的内容ng是因为它在后台运行,而终端不可用。我必须在kill语句前面加上
    sudo
    。我在macOS Catalina上,链接到docu非常有用。此外,我还想对这个问题添加一个简短的直接答案,如“是:kill是停止进程的推荐方法之一”。此答案很好,但与saurabheights的答案几乎相同。以后请先检查现有答案以避免重复。感谢您的回答!我使用mac,这对我帮助很大!