ubuntu16.04設定開機自啟動(以mongodb為例)
阿新 • • 發佈:2019-01-03
以mongodb的設定為例
1.在/etc/init.d/目錄下建立mongodb-start檔案,檔案內容如下:
#!/bin/bash
### BEGIN INIT INFO
# Provides: mongodb
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: mongodb
# Description: mongodb
### END INIT INFO
## 命令名稱
PROG="mongod"
## 安裝路徑
PROG_PATH="/usr/local/mongodb"
## 一些引數
PROG_ARGS="--fork --dbpath /data/mongodb-data --logpath /data/mongodb-log/db.log"
## 儲存程序號的PID檔案儲存的目錄
PID_PATH="/var/run/"
## 定義啟動函式
start() {
## 如果pid檔案存在,認為已經存在一個程序
if [ -e "$PID_PATH/$PROG.pid" ]; then
echo "Error! $PROG is currently running!" 1>&2
exit 1
else
## 啟動命令,錯誤重定向輸出到/var/log/目錄下
$PROG_PATH/bin/$PROG $PROG_ARGS 2>&1 >/var/log/$PROG &
pid=`ps ax | grep -i 'bin/mongod' | sed 's/^\([0-9]\{1,\}\).*/\1/g' | head -n 1`
echo "$PROG started"
## 獲取程序號存到pid檔案中
echo $pid > "$PID_PATH/$PROG.pid"
fi
}
## 定義關閉函式
stop() {
echo "begin stop"
if [ -e "$PID_PATH/$PROG.pid" ]; then
## kill掉程序
pid=`ps ax | grep -i 'bin/mongod' | sed 's/^\([0-9]\{1,\}\).*/\1/g' | head -n 1`
kill $pid
## 刪除pid檔案
rm -f "$PID_PATH/$PROG.pid"
echo "$PROG stopped"
else
echo "Error! $PROG not started!" 1>&2
exit 1
fi
}
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root" 1>&2
exit 1
fi
case "$1" in
start)
start
exit 0
;;
stop)
stop
exit 0
;;
reload|restart|force-reload)
stop
start
exit 0
;;
**)
echo "Usage: $0 {start|stop|reload}" 1>&2
exit 1
;;
esac
exit 0
2.測試啟動指令碼是否有效
1) 啟動
sudo /etc/init.d/mongodb-start start
ps -ax | grep -i ‘bin/mongod’
如果有相應程序,說明啟動成功
2) 關閉
sudo /etc/init.d/mongodb-start stop
ps -ax | grep -i ‘bin/mongod’
如果沒有相應程序,說明啟動失敗
3.設定開機自啟動
sudo update-rc.d mongodb-start defaults
4.刪除開機自啟動
sudo update-rc.d mongodb-start remove