Linux环境下,Spring boot通用启动脚本
Springboot 工程打成Jar包后,启动就是一个问题了,以下脚本提供了优雅的启动方式。能像Tomcat一样的配置JVM启动。
#!/bin/sh
#功能简介:启动上层目录下的jar文件
#参数简介:
# $1:jar文件名(包含后缀名)
# $2:springboot 本地配置文件,不填的时候为内置配置。
#启动参数
JAVA_OPTS="-server -Xms200m -Xmx200m -Xmn150m -XX:MetaspaceSize=68m -XX:MaxMetaspaceSize=68m -Xverify:none -XX:+DisableExplicitGC -Djava.awt.headless=true"
jar_name=$1
jar_config=$2
this_dir="$( cd "$( dirname "$0" )" && pwd )"
parent_dir=`dirname "${this_dir}"`
log_dir="${this_dir}/logs"
log_file="${log_dir}/catalina.out"
jar_file="${this_dir}/${jar_name}"
#参数个数<1或者参数空值时,中断执行
if [ $# -lt 1 ] || [ -z $1 ]; then
echo -e " 33[31m请输入要部署的jar包名称! 33[0m"
exit 1
fi
#日志文件夹不存在,则创建
if [ ! -d "${log_dir}" ]; then
mkdir "${log_dir}"
fi
#父目录下jar文件存在
if [ -f "${jar_file}" ]; then
#非本地文件启动
if [ $# -lt 2 ] || [ -z $2 ]; then
echo -e " 33[31m启动内置配置 33[0m"
echo "启动命令:java $JAVA_OPTS -jar ${jar_file} >${log_file} 2>&1 &"
nohup java $JAVA_OPTS -jar ${jar_file} >${log_file} 2>&1 &
else
#启动jar包;重定向标准错误输出到文件,丢掉标准输出
echo "启动命令:java $JAVA_OPTS -jar ${jar_file} --spring.config.location=${jar_config} >${log_file} 2>&1 &"
nohup java $JAVA_OPTS -jar ${jar_file} --spring.config.location=${jar_config} >${log_file} 2>&1 &
fi
#打印后台日志
tail -f ${log_dir}/catalina.out
exit 0
else
echo -e " 33[31m${jar_file}文件不存在! 33[0m"
exit 1
fi