有一个脚本,我可以根据需要启动/停止各种服务。例如 Apache、BIND、MySQL、PostFix、Memcached、Tomcat……等等。
根据脚本的状态选项等,采取各种操作。
对于大多数人来说,这工作得很好:(以 Apache 为例)
if service apache2 status >/dev/null; then
# ... do some action
fi
对于其他人,必须使用其他技巧,例如mysqladmin ping
.
但是我无法找到任何好方法来检查mongodb
.
service mongodb status
它有相同的“疾病”作为 MySQL,yieldmongodb stop/waiting
也评估为 true,即使服务未启动并运行。
已查看等mongod
,mongostat
但没有找到任何选项。
一种方法可能是使用ps
或可能更好netstat
并与grep
或类似的组合,但想知道是否有更好的(更原生/有针对性的)方法来检查状态。也可以 grep for stop/waiting
,但不确定这有多可靠,并猜测它可能会在未来的升级中崩溃。
答案1
pgrep
仅仅使用来查找进程怎么样mongod
?
$ pgrep mongod
答案2
我没试过 mongodb。但从这个答案来看这里,我看到了ps
您在问题中提到的选项。另外,你只提到过service mongodb status
。不过,你也可以尝试一下/etc/init.d/mongod status
。
检查:
ps -edaf | grep mongo # "ps" flags may differ on your OS
或者
/etc/init.d/mongod status
或者
service mongodb status
查看 mongod 是否正在运行
检查日志文件/var/log/mongo/mongo.log
以查看是否报告了任何问题