mongodb正在运行吗?

107 database unix mongodb nosql

我在我的unix服务器上安装了mongodb和php驱动程序.

我的问题是如何判断mongodb是否正在运行?是否有简单的命令行查询来检查状态?如果我从shell启动一次它将继续运行,如果我退出shell(这似乎不是这种情况).如何使mongodb连接持久并在服务器重启时自动启动?

我可以跑:

-bash-3.2 $ su
密码:
[root @ xxx] #cd/var/lib
[root @ xxx]#
./ mongodb- linux- i686-1.6.5/bin/mongod./ mongodb- linux- i686-1.6. 5/bin/mongod - help for help and startup options
Wed Feb 23 08:06:54 MongoDB start:pid = 7271 port = 27017 dbpath =/data/db/32-bit

**注意:使用MongoDB 32位时,限制为大约2千兆字节的数据
**请参阅http://blog.mongodb.org/post/137788967/32-bit-limitations

**警告:您在OpenVZ中运行.这已经被打破!!!

Wed Feb 23 08:06:54 db version v1.6.5,pdfile version 4.5
Wed Feb 23 08:06:54 git version:0eb017e9b2828155a67c5612183337b89e12e291
Wed Feb 23 08:06:54 sys info:Linux domU-12-31-39-01 -70-B4 2.6.21.7-2.fc8xen#1 SMP Fri
2月15日12:39:36 EST 2008 i686 BOOST_LIB_VERSION = 1_37
Wed Feb 23 08:06:54 [initandlisten]等待连接端口27017
Wed Feb 23 08: 06:54 [websvr] web管理界面侦听端口28017

如果我打开一个单独的shell,然后我可以连接到mongodb:

-bash-3.2 $ cd/var/lib
-bash-3.2 $ ./mongodb-linux-i686-1.6.5/bin/mongo
MongoDB shell版本:1.6.5
连接到:test
db.foo.find()
{" _id":ObjectId("4d63d7d3eb95985ab19c8feb"),"a":1}

但是,如果我关闭初始shell我无法连接:

-bash-3.2 $ cd/var/lib
-bash-3.2 $ ./mongodb-linux-i686-1.6.5/bin/mongo
MongoDB shell版本:1.6.5
连接到:test
Wed Feb 23 08:25:10错误:无法连接到服务器127.0.0.1(匿名):1154
异常:连接失败

Til*_*ilo 138

检查:

   ps -edaf | grep mongo | grep -v grep  # "ps" flags may differ on your OS
Run Code Online (Sandbox Code Playgroud)

要么

   /etc/init.d/mongodb status     # for MongoDB version < 2.6

   /etc/init.d/mongod status      # for MongoDB version >= 2.6
Run Code Online (Sandbox Code Playgroud)

要么

   service mongod status
Run Code Online (Sandbox Code Playgroud)

看看mongod是否正在运行(你需要root用户才能执行此操作,或者为所有内容添加前缀sudo).请注意,'grep'命令将始终显示为单独的进程.

检查日志文件/var/log/mongo/mongo.log以查看是否有任何问题报告

  • 应该是:服务mongodb状态 (17认同)
  • 你也可以做一个`pgrep mongo`. (11认同)
  • 来自mongo 2.6的服务是mongod早期的mongodb,令人困惑的是 (4认同)
  • 对于`mongod status`我得到"无效的命令:status" (2认同)
  • @MhdSyrwan - "服务mongod status"工作. (2认同)

Mar*_*yen 37

我发现:

ps -ax | grep mongo
Run Code Online (Sandbox Code Playgroud)

要更加一致.返回的值可用于检测正在运行的mongod的实例数

  • 此外,您可能需要考虑添加过滤器以不返回正在运行的grep进程.所以:ps -ax | grep -v grep | grep mongo (5认同)

小智 30

为了快速检查mongodb是否正在运行,这个快速的通知技巧会让你知道.

nc -zvv localhost 27017
Run Code Online (Sandbox Code Playgroud)

以上命令假定您在localhost上的默认端口上运行它.

要自动启动它,您可能需要查看此线程.


Kai*_*are 19

在 Ubuntu 上(文档

\n
\n

sudo systemctl 状态 mongod

\n
\n

如果运行

\n
\xe2\x97\x8f mongod.service - MongoDB Database Server\n     Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)\n     Active: active (running) since Wed 2020-10-14 14:13:40 UTC; 3s ago\n       Docs: https://docs.mongodb.org/manual\n   Main PID: 1604 (mongod)\n     Memory: 210.8M\n     CGroup: /system.slice/mongod.service\n             \xe2\x94\x94\xe2\x94\x801604 /usr/bin/mongod --config /etc/mongod.conf\n
Run Code Online (Sandbox Code Playgroud)\n

如果不运行

\n
\xe2\x97\x8f mongod.service - MongoDB Database Server\n     Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)\n     Active: inactive (dead)\n       Docs: https://docs.mongodb.org/manual\n
Run Code Online (Sandbox Code Playgroud)\n

启动 mongodb

\n
sudo systemctl start mongod\n
Run Code Online (Sandbox Code Playgroud)\n


Ada*_*Dev 8

正确,关闭shell将停止MongoDB.尝试使用--fork命令行arg进行mongod进程,使其作为守护进程运行.我不是Unix大师,但我确信必须有办法在机器启动时让它自动启动.

例如

mongod --fork --logpath /var/log/mongodb.log --logappend
Run Code Online (Sandbox Code Playgroud)

查看有关启动和停止Mongo的完整文档.


Vin*_*eph 8

这应该工作正常......

pgrep mongod


小智 7

要检查mongodb的当前运行状态,请使用: sudo service mongodb status


小智 5

您可以使用以下命令来检查 MongoDB 状态,例如:sudo service MongoDB status它显示 MongoDB 服务的状态,如屏幕截图所示:

MongoDB 状态