1. 程式人生 > >MongoDB 開機自啟動

MongoDB 開機自啟動

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

MongoDB安裝了以後,應當設定開機自啟動。

假設啟動命令如下:

sudo /db/mongodb/265/bin/mongod --config /db/conf/mongodb/mongodb.conf


方法有二:

1、把這句話寫到把 /etc/rc.local,即可開機啟動。

第二種:

2、將一個指令碼放到/etc/init.d/

比如,命名為/etc/init.d/mongodb,則執行以下步驟即可:

1)要給它們賦予執行許可權:
chmod +x /etc/init.d/mongodb

2)接著試一下是否可以啟動、停止:
service mongodb start
service mongodb stop


3)最後設為開機啟動:
chkconfig mongodb on

這個指令碼,有樣例如下:

#!/bin/bash# mongod - Startup script for mongod# chkconfig: 35 80 15# description: Mongo is a scalable, document-oriented database.# processname: mongod#config: /db/conf/mongodb/mongod.conf# pidfile: /var/run/mongo/mongo.pidsource /etc/rc.d/init.d/functions# things from mongod.conf get there by mongod reading itif [ $(id -u) != "0" ]; then    echo "Permission Denied! Please use root to run again!"    exit 1fitest -d /var/run/mongodb || (mkdir -p /var/run/mongodb ; chown mongod:mongod /var/run/mongodb)# NOTE: if you change any OPTIONS here, you get what you pay for:# this script assumes all options are in the config file.CONFIGFILE="/db/conf/mongodb/mongodb.conf"SYSCONFIG="/etc/sysconfig/mongod"export PATH=$PATH:/db/mongodb/265/binDBPATH=`awk -F= '/^dbpath/{print $2}' "$CONFIGFILE"`OPTIONS=" --config $CONFIGFILE"mongod=${MONGOD-/db/mongodb/265/bin/mongod}echo "db path is: "$DBPATHecho $mongodMONGO_USER=leftfistMONGO_GROUP=leftfist[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"super() {    su - $MONGO_USER -c "PATH=$PATH:/db/mongodb/265/bin; $*"}start(){  echo -n $"Starting mongod: "#  daemon --user "$MONGO_USER" "numactl --interleave=all" $mongod $OPTIONS#daemon --user "$MONGO_USER" $mongod $OPTIONS#  #   su - $MONGO_USER -c "$mongod $OPTIONS" -m -p#  su - $MONGO_USER  $mongod $OPTIONS#  super $mongod $OPTIONS  echo $mongod$OPTIONS  RETVAL=$?  echo  [ $RETVAL -eq 0 ] && touch /var/lock/subsys/mongod}stop(){  echo -n $"Stopping mongod: "  killproc -p "$DBPATH"/mongod.lock -d 300 /db/mongodb/265/bin/mongod  RETVAL=$?  echo  [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/mongod}restart () {        stop        start}ulimit -n 12000RETVAL=0case "$1" in  start)    start    ;;  stop)    stop    ;;  restart|reload|force-reload)    restart    ;;  condrestart)    [ -f /var/lock/subsys/mongod ] && restart || :    ;;  status)    status $mongod    RETVAL=$?    ;;  *)    echo "Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"    RETVAL=1esacexit $RETVAL

這種指令碼,甚是難懂。據說是Shell。。。。並且它是怎麼來的?不可能是由我們自己一句一句地碼出來的吧?聽說是安裝應用系統的時候,由系統自己設定的。

但我的mongodb,是從官網上下載的二進位制檔案,解壓以後就可以使用了,僅為了方便,配置了一下PATH而已,根本沒有什麼啟動指令碼。上面那個示例,是從其他地方抄過來,然後修改了一下,有效。

按照自己的理解,解釋一下里面一些句子:

#配置檔案

CONFIGFILE="/db/conf/mongodb/mongodb.conf"

#此為啟動mongodb的引數(配置檔案)。$CONFIGFILE的意思,應該就是將上面那一句代入其中

OPTIONS=" --config $CONFIGFILE"

#定義了mongod,但{}裡的MONGOD就不知道是什麼意思了,可能就是mongod命令?但為什麼是大寫?也許是環境變數?如果真是,那麼中間那一橫就是或者的意思了

#即在有PATH的條件下,直接是mongod命令,否則就是明確指示具體路徑的mongod命令

mongod=${MONGOD-/db/mongodb/265/bin/mongod}

#賬戶,但在我的例子中,它們不起作用

MONGO_USER=leftfist
MONGO_GROUP=leftfist

#因為我是這樣子啟動mongoDB的:

#並沒有指定由什麼賬戶來執行。其實,啟動指令碼都由超級管理員來啟動(?)

  $mongod $OPTIONS


           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述