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