Linux下的mongodb服務監視指令碼(啟動服務)_Linux

來源:互聯網
上載者:User

前些天,一位開發同事找到我,說他測試環境的 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# OPTIONSOPTIONS=" --dbpath=/home/data/mongodb/ --logpath=/home/data/mongodb/mongodb.log --logappend &"#mongodmongod="/usr/local/mongodb/bin/mongod"lockfile=/var/lock/subsys/mongodstart(){ echo -n $"Starting mongod: " daemon $mongod $OPTIONS RETVAL=$? echo [ $RETVAL -eq 0 ] && touch $lockfile} stop(){ echo -n $"Stopping mongod: " killproc $mongod -QUIT RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f $lockfile} restart () {    stop    start}ulimit -n 12000RETVAL=0 case "$1" in start)  start  ;; stop)  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=1esacexit $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

非常簡單,貼到部落格記錄一下,以備不時之需。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.