【问题标题】:Can I just kill mongod to stop mongo?我可以杀死 mongod 来阻止 mongo 吗?
【发布时间】:2014-01-29 12:25:55
【问题描述】:

我是 Mongo 的新手。我正在运行mongod,如Mac OS X 中的here 所述。我正在从命令行运行两个mongod 进程。如果我需要停止mongod 进程,我只需执行kill <pid of mongod>。这是停止mongod的推荐方式吗?

【问题讨论】:

    标签: macos mongodb administration


    【解决方案1】:

    终于成功了(Ubuntu 15.04)

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

    $ pgrep mongo
    

    1350

    //2.kill mongod进程

    $ kill 1350
    

    【讨论】:

    • 我必须在 kill 语句前加上 sudo。我在 macOS Catalina 上
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      kill -2 `pgrep mongo`
      

      别名

      alias stopmongo='kill -2 `pgrep mongo`'
      

      【讨论】:

      • 你能解释一下我们需要使用-2标志吗
      • @SujayUN - 请查看答案中 mongo 官方文档的链接。这是 mongo 开发人员推荐的。我提到不使用 -9 的原因是 AFAIK(不完美),它是一个终止信号,会立即终止应用程序。 -2 通俗地说是一个软中断,它告诉 mongo 完成其关键任务,不接受任何未来的数据 R/W 请求并退出。这可以防止数据损坏。有关信号的进一步阅读,请参阅tldp.org/LDP/Bash-Beginners-Guide/html/sect_12_01.html
      • 在最坏的情况下 -2 不起作用时必须使用 -9 的东西
      【解决方案4】:

      Windows

      use admin
      db.shutdownServer()
      

      对于启用了身份验证的系统,用户只能在通过 admin 数据库身份验证或通过未启用身份验证的系统上的本地主机接口时发出 db.shutdownServer()。

      Linux

      mongod --shutdown
      

      你也可以使用

      kill <mongod process ID> 
      

      http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/

      【讨论】:

      【解决方案5】:

      2020 年:

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

      在 brew 方式中,如果 Mongo 是由 brew tap mongodb/brewbrew 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)
      

      【讨论】:

      • 感谢您的回答!我在使用 Mac,它对我帮助很大!
      • (编辑:我知道答案是指 Mac 安装,但只是添加了关于在 Linux 上安装它的官方方式:)今天 MongoDB 社区版可从许多发行版中自己的专用存储库获得,这是在 Linux according to the documentation 上安装它的“官方”方式。
      【解决方案6】:

      终端$ kill $(pgrep mongod)

      【讨论】:

        【解决方案7】:

        这个命令可以帮助杀死 mongod 进程。 sudo pkill -f mongod

        【讨论】:

          【解决方案8】:

          刚刚在mac中遇到了“刚刚杀死mongod”的问题......

          1. 在 mac 系统中,mongod 通过“launchctl”作为服务保持运行。 “只是杀死”它将杀死该服务。

          2. 现在要使用 mongo shell,我们再次执行 mongod,但是对于其他开发目的,例如从节点连接,我们需要确保一次又一次地运行 mongod。

          3. 另一种选择是关闭系统并重新启动。

          更好的方法:

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

          What is the correct way to start a mongod service on linux / OS X?

          【讨论】:

            【解决方案9】:

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

            【讨论】:

            • 问题是后台运行,终端不可用
            【解决方案10】:

            如果你配置了自动启动,杀掉进程没有用,新的进程会立即启动。为了禁用自动启动,您必须首先找到自动启动文件。您可以尝试使用例如查找文件

            find / -name "mongodb.plist"locate "mongodb.plist"

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

            sudo launchctl unload -w <file>
            

            如果你想杀死进程并且它没有使用自动启动,记住不要使用kill -9 &lt;PID&gt;,它会损坏数据库。 kill -1 &lt;PID&gt;kill -15 &lt;PID&gt; 应该是安全的选项。

            【讨论】:

              【解决方案11】:

              https://docs.mongodb.com/manual/tutorial/manage-mongodb-processes/

              官方指南

              记住不要使用 kill -9

              否则可能需要删除 dbpath 中的锁定文件

              【讨论】:

              • 链接到文档非常有帮助。此外,我还将对该问题添加一个简短的直接答案,例如“是的:kill 是停止进程的推荐方法之一”。
              • 这个答案很好,但与 saurabheights 的答案几乎相同。以后请先检查现有答案以避免重复。
              猜你喜欢
              • 1970-01-01
              • 2011-12-12
              • 2023-03-03
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-09-10
              相关资源
              最近更新 更多