前言
相信大家在网上已经看到关于SpringBoot的启动脚本了,但是,我认为那些都不够经典。因为,我们项目组的大佬教给了我一份启动脚本,让我受益匪浅。
启动方法
1.通过 java -jar xxxx.jar启动
缺点:一旦退出shell命令,项目就停止了
2.通过nohup java -jar xxxx.jar启动(可退出命令行)
通过脚本启动
#!/bin/bash
#静态资源上传路径
WEB_ROOT=/usr/el/tomcat-xzel/webapps/qh-sso
#jar地址
SERVCER_JAR=sso-zwfwsx-0.0.1-SNAPSHOT.jar
#日志名称
LOG_NAME=zwfwsx.log
#进入对应目录
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
#输出信息
echo '---------------------------------------'
echo $DIR
#创建项目jar包工程目录
if [ ! -d /backend/app/hr/node1/jar ];then
mkdir -p /backend/app/hr/node1/jar
fi
#创建备份目录
date_stamp=`date "+%Y-%m-%d-%H-%M-%S"`
echo $date_stamp
if [ ! -d /backend/app/hr/node1/bak/jar$date_stamp ];then
mkdir -p /backend/app/hr/node1/bak/jar$date_stamp
fi
#备份
if [ ! -f "/backend/app/hr/node1/jar/$SERVCER_JAR" ];then
echo $SERVCER_JAR"文件不存在"
else
cp /backend/app/hr/node1/jar/$SERVCER_JAR /backend/app/hr/node1/bak/jar$date_stamp
fi
#杀死java进程
_pid=`ps -ef | grep java | grep $SERVCER_JAR |awk '{print $2}'`
echo "kill ------>"$SERVCER_JAR "pid---->" $_pid
[ -n "$_pid" ] && kill -9 $_pid
#删除老包,替换新包
rm -rf /backend/app/hr/node1/jar/$SERVCER_JAR
cp $DIR/$SERVCER_JAR /backend/app/hr/node1/jar
#启动新包
if [ ! -f "/backend/app/hr/node1/logs/$LOG_NAME" ];then
echo "文件不存在,创建新文件"
mkdir -p /backend/app/hr/node1/logs/
touch /backend/app/hr/node1/logs/$LOG_NAME
fi
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
JAVA=$JAVA_HOME/bin/java
echo '---------------------------------------java path'
echo $JAVA
nohup java -Dweb_root=${WEB_ROOT} -Xmx2048m -Xms2048m -XX:PermSize=500M -XX:MaxPermSize=500M -Xss256k -jar /backend/app/hr/node1/jar/$SERVCER_JAR > /backend/app/hr/node1/logs/$LOG_NAME 2>&1 &
#三十秒后打印日志
sleep 30
cat /backend/app/hr/node1/logs/$LOG_NAME
然后运行sh deploy-gxzwfwsh.sh 或者 ./deploy-gxzwfwsh.sh
启动前期信息
启动成功信息