Ubuntu編寫開機啟動腳本


1 概述

  • 服務器一般不可能百分之百不會掛,於是一般采用主備或者分布式來達到高可用。

  • 掛掉的機器有很多處理策略,常用的就是重新啟動,但是為了保證重啟之后服務器能夠恢復可用狀態,需要配置開機啟動腳本。

2 編寫啟動腳本

  • 服務腳本:假設服務名字為test
#!/bin/bash
### BEGIN INIT INFO
# Provides:          littleevil
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: test service
# Description:       test service daemon
### END INIT INFO

# 文件服務器 運營平台 商戶平台
files=(file opt merchant)
# 目錄
deploy=/home/littleevil/deploy/

start() {
    echo "starting test service..." 
    for var in ${files[@]};
    do
    	# 進入目錄並運行服務器啟動腳本
        cd $deploy$var
        sh start.sh
    done
}


stop() {
    echo "stopping test service..."
    for var in ${files[@]};
    do
    	# 進入目錄並運行服務器停止腳本
        cd $deploy$var
        sh stop.sh
    done
}

restart() {
    stop
    start
}

# 這里沒有重寫status
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        restart
        ;;
esac
  • 服務器啟動腳本:這里演示文件服務器的啟動腳本
#!/bin/sh

echo "you will start server"
echo "please waiting ...."

ps -ef|grep file.jar|grep -v grep|awk {'print $2'}|while read line
do
  kill -9 $line
done

rm -rf log.out

# JVM調優參數未寫 需要根據實際情況進行調整
nohup nice java -server -XX:+UseG1GC -XX:+PrintGCDetails -XX:+PrintHeapAtGC -Xloggc:./gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./oom.dump -jar file.jar >log.out&
  • 服務器停止腳本
#!/bin/sh

echo "you will stop server"
echo "please waiting ...."

ps -ef|grep file.jar|grep -v grep|awk {'print $2'}|while read line
do
  sudo -S kill -9 $line
done

rm -rf log.out

3 設置腳本開機自啟動

  • 復制文件夾中的test服務腳本至linux系統的/etc/init.d目錄下
  • 進入/etc/init.d目錄執行sudo update-rc.d test defaults 95
  • 執行sudo sysv-rc-conf查看服務是否添加
  • 執行 sudo service test start/stop/restart/status或者sudo systemctl start/stop/restart/status test.service 測試服務是否添加成功 (需要重啟服務器)
  • 執行 sudo sysv-rc-conf --level 2345 delightd on
  • 最后通過sudo reboot測試服務開啟是否可以自啟動


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM