springboot 打包jar,在centos 7 的部署腳本,並設置成開機啟動


一、編寫啟動腳本 

 

#!/bin/bash

SCRIPTPATH=`dirname $0`
PWDPATH=`cd $SCRIPTPATH && pwd`
# 配置jar home路徑,按照實際配置修改
#JRE_HOME=/data/jdk1.8.0/jre
# jvm 允許參數
JVM_OPTION=" -Xms512m -Xmx2g"

# 項目配置 jar路徑
SPRING_CLASSPATH=$PWDPATH/lib/*
#項目配置文件 SPRING_CONFIG=file:$PWDPATH/conf/ SPRING_CONFIG=$PWDPATH/conf/bootstrap.properties SPRING_LOGGING=$PWDPATH/conf/logback.xml SIGAR=$PWDPATH/sigar # 刪除服務后啟動 PROCESS=$(ps -ef | grep $PWDPATH/lib | grep -v grep | awk '{print $2}') echo "$PROCESS" if [ -n "$PROCESS" ]; then echo "PROCESS no IS not NULL" kill -9 $PROCESS fi echo "------------ begin starting $PWDPATH -------------" OPTION="$JVM_OPTION -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$PWDPATH/logs" SPRING_PARAMS="--spring.config.location=$SPRING_CONFIG --logging.config=$SPRING_LOGGING" nohup java -server $OPTION -Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8 -Duser.language=zh_CN -Dsun.jnu.encoding=UTF-8 -Djava.library.path=$SIGAR -Djava.security.egd=file:/dev/./urandom -jar $SPRING_CLASSPATH $SPRING_PARAMS > /dev/null 2>&1 & new_agent_pid=$! #java -server $OPTION -Djava.security.egd=file:/dev/./urandom -jar $SPRING_CLASSPATH $SPRING_PARAMS echo "------------ end start $new_agent_pid $PWDPATH -------------"
這個-Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8 -Duser.language=zh_CN -Dsun.jnu.encoding=UTF-8 命令主要是為了解決日志輸出中文亂碼

二、編寫關閉腳本

#!/bin/bash
SCRIPTPATH=`dirname $0`
PWDPATH=`cd $SCRIPTPATH && pwd`
#rm -fr native
PROCESS=$(ps -ef | grep $PWDPATH/lib | grep -v grep | awk '{print $2}')
        echo "$PROCESS"
if [ -n "$PROCESS" ]; then
        echo "PROCESS no IS not NULL"
        kill -9 $PROCESS
fi

這些腳本存放在項目的根路徑下面

 

三、編寫開機啟動腳本

#!/bin/bash
#chkconfig:2345 80 90
#decription: FaceDeviceCenter start
#SCRIPTPATH=`dirname $0`
#PWDPATH=`cd $SCRIPTPATH && pwd`
#項目路徑 PWDPATH
=/mnt/server/FaceDeviceCenter-8083 # 配置jar home路徑,按照實際配置修改 #JRE_HOME=/data/jdk1.8.0/jre # jvm 允許參數 JVM_OPTION=" -Xms512m -Xmx2g" # 項目配置 SPRING_CLASSPATH=$PWDPATH/lib/* SPRING_CONFIG=file:$PWDPATH/conf/ SPRING_CONFIG=$PWDPATH/conf/bootstrap.properties SPRING_LOGGING=$PWDPATH/conf/logback.xml SIGAR=$PWDPATH/sigar # 刪除服務后啟動 PROCESS=$(ps -ef | grep $PWDPATH/lib | grep -v grep | awk '{print $2}') echo "$PROCESS" if [ -n "$PROCESS" ]; then echo "PROCESS no IS not NULL" kill -9 $PROCESS fi echo "------------ begin starting $PWDPATH -------------" OPTION="$JVM_OPTION -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$PWDPATH/logs" SPRING_PARAMS="--spring.config.location=$SPRING_CONFIG --logging.config=$SPRING_LOGGING" nohup java -server $OPTION -Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8 -Duser.language=zh_CN -Dsun.jnu.encoding=UTF-8 -Djava.library.path=$SIGAR -Djava.security.egd=file:/dev/./urandom -jar $SPRING_CLASSPATH $SPRING_PARAMS > /dev/null 2>&1 & new_agent_pid=$! #java -server $OPTION -Djava.security.egd=file:/dev/./urandom -jar $SPRING_CLASSPATH $SPRING_PARAMS echo "------------ end start $new_agent_pid $PWDPATH -------------"
  1. 注意腳本要添加這兩行代碼,否則會啟動不了
    #chkconfig:2345 80 90 #decription:autostart
  2. 將腳本移動到/etc/rc.d/init.d目錄下,或者在這個目錄下創建一個xxxx.sh的腳本文件,一般我喜歡把項目名稱作為腳本文件名,並把上面的腳本內容寫進去,比如我腳本名
    tomcat.sh為例
    mv  /xxxx/tomcat.sh /etc/rc.d/init.d
  3. 增加腳本的可執行權限
    chmod +x  /etc/rc.d/init.d/tomcat.sh
  4. 添加腳本到開機自動啟動項目中
    cd /etc/rc.d/init.d
    chkconfig --add tomcat.sh
    chkconfig tomcat.sh on

     

 


免責聲明!

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



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