2

Linux下的mongodb服务脚本,以备不时之需

 3 years ago
source link: https://zhang.ge/5044.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Linux下的mongodb服务脚本,以备不时之需

Jager · 6月4日 · 2015年linux · shell · shell脚本 5299次已读

前些天,一位开发同事找到我,说他测试环境的 mongodb 经常挂掉,要我写一个监控或复活的脚本。我觉得很奇怪,测试环境又没啥负载,经常挂掉肯定有非常规原因。

跑过去看了一下日志,发现存在stop记录,我就纳闷了,没人操作他还会自己stop。这明显不是挂掉了,于是到history中看了下同事的启动命令:

/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data/ --logpath=/data/mongodb.log --logappend &

原来如此!因为他没有用nohup启动,所以只要他的终端离线或者关闭,mongodb就会自动退出了!解决办法很简单,如下启动即可:

nohup /usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data/ --logpath=/data/mongodb.log --logappend >/dev/null 2>&1 &

这样敲命令也着实苦逼,所以从网上找了一个mongodb服务脚本就舒服多了:

#!/bin/sh
#mongod - Startup script for mongod
# chkconfig: - 85 15
# description: Mongodb database.
# processname: mongod
# Source function library
. /etc/rc.d/init.d/functions
# things from mongod.conf get there by mongod reading it
# OPTIONS
OPTIONS=" --dbpath=/home/data/mongodb/ --logpath=/home/data/mongodb/mongodb.log --logappend &"
#mongod
mongod="/usr/local/mongodb/bin/mongod"
lockfile=/var/lock/subsys/mongod
start()
echo -n $"Starting mongod: "
daemon $mongod $OPTIONS
RETVAL=$?
[ $RETVAL -eq 0 ] && touch $lockfile
stop()
echo -n $"Stopping mongod: "
killproc $mongod -QUIT
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f $lockfile
restart () {
start
ulimit -n 12000
RETVAL=0
case "$1" in
start)
start
stop)
restart|reload|force-reload)
restart
condrestart)
[ -f $lockfile ] && restart || :
status)
status $mongod
RETVAL=$?
echo "Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"
RETVAL=1
exit $RETVAL

将代码保存到 /etc/init.d/mongodb,然后使用 chmod +x /etc/init.d/mongodb 添加执行权限。

现在,就可以使用 service 命令来控制mongodb了:

service mongodb start|stop|restart
/etc/init.d/mongodb start|stop|restart

非常简单,贴到博客记录一下,以备不时之需。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK