# ================JDK指定17版本运行================
function start(){
echo "the enviroment is ${m4c_env}"
echo "starting springboot app:my_web.jar"
echo "nohup /opt/data/hcym4c/jdk/jdk-17.0.5/bin/java -jar ${JAVA_OPTS} my_web.jar -Dproc_name=${m4c_env} --spring.config.location=${CONFIG_DIR}/bootstrap.yml --logging.config=${CONFIG_DIR}/logback-config/logback-${env}.xml > ${catalina_file} 2>&1 &"
nohup /opt/data/my/jdk/jdk-17.0.5/bin/java -jar ${JAVA_OPTS} my_web.jar -Dproc_name=${m4c_env} --spring.config.location=${CONFIG_DIR}/bootstrap.yml --logging.config=${CONFIG_DIR}/logback-config/logback-${env}.xml > ${catalina_file} 2>&1 &
}
优先级由高到低依次为
若application.yml 和bootstrap.yml 在同一目录下:bootstrap.yml 先加载 application.yml后加载
bootstrap.yml 用于应用程序上下文的引导阶段。bootstrap.yml 由父Spring ApplicationContext加载。
bootstrap.yml 和 application.yml 都可以用来配置参数。
bootstrap.yml 用来程序引导时执行,应用于更加早期配置信息读取。可以理解成系统级别的一些参数配置,这些参数一般是不会变动的。一旦bootStrap.yml 被加载,则内容不会被覆盖。
application.yml 可以用来定义应用级别的, 应用程序特有配置信息,可以用来配置后续各个模块中需使用的公共参数等。
启动上下文时,Spring Cloud 会创建一个 Bootstrap Context,作为 Spring 应用的 Application Context 的父上下文。
初始化的时候,Bootstrap Context 负责从外部源加载配置属性并解析配置。这两个上下文共享一个从外部获取的 Environment。Bootstrap 属性有高优先级,默认情况下,它们不会被本地配置覆盖。
也就是说如果加载的 application.yml 的内容标签与 bootstrap 的标签一致,application 也不会覆盖 bootstrap,而 application.yml 里面的内容可以动态替换。
#!/bin/bash
current_dir=`pwd`
myweb_env=myweb2_web
log_dir=${current_dir}/logs
catalina_file=${log_dir}/catalina/catalina.out
env=$(cat ${current_dir}/config/bootstrap.yml | grep active | awk '{print $2}'|sed 's/[\r|\n]//g')
if [ ! -d $log_dir ]; then
mkdir -p $log_dir
echo "mkdir log directory '${log_dir}'"
fi
# 判断文件是否存在,!取反值,不存在就创建
if [ ! -f $catalina_file ]; then
touch ${catalina_file}
echo "touch log file '${catalina_file}'"
else
curday=`date +%Y%m%d`
curday="${curday}000000"
catalina_file_modify_time=`stat ${catalina_file} | sed -n '6,1p' | awk '{print $2, $3}'| sed -e 's/[-: ]//g'`
catalina_file_modify_time=${catalina_file_modify_time%%.*}
#echo "catalina_file_modify_time=${catalina_file_modify_time},curday=${curday}"
if [ ${catalina_file_modify_time} -lt ${curday} ]; then
#echo "check log file last modify time < current date, so mv ${catalina_file} -> ${catalina_file}.`date -d last-day +%Y-%m-%d`"
mv ${catalina_file} ${catalina_file}.`date -d last-day +%Y-%m-%d`
touch ${catalina_file}
fi
fi
JAVA_OPTS="-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -Xms2048m -Xmx2048m -Xmn512m -Xss256k -XX:SurvivorRatio=8 -Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom"
GC_PLS="-XX:ParallelGCThreads=16 -XX:MaxTenuringThreshold=5 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:CMSInitiatingOccupancyFraction=70"
JAVA_OPTS="$JAVA_OPTS"
CONFIG_DIR="/opt/data/hcymyweb/myweb2/web/config"
function usage(){
echo
echo "usage: $0 [start | stop | restart | status]"
echo
}
# ================JDK指定17版本运行================
function start(){
echo "the enviroment is ${myweb_env}"
echo "starting springboot app:myweb2_web.jar"
echo "nohup /opt/data/hcymyweb/jdk/jdk-17.0.5/bin/java -jar ${JAVA_OPTS} myweb2_web.jar -Dproc_name=${myweb_env} --spring.config.location=${CONFIG_DIR}/bootstrap.yml --logging.config=${CONFIG_DIR}/logback-config/logback-${env}.xml > ${catalina_file} 2>&1 &"
nohup /opt/data/hcymyweb/jdk/jdk-17.0.5/bin/java -jar ${JAVA_OPTS} myweb2_web.jar -Dproc_name=${myweb_env} --spring.config.location=${CONFIG_DIR}/bootstrap.yml --logging.config=${CONFIG_DIR}/logback-config/logback-${env}.xml > ${catalina_file} 2>&1 &
}
function stop(){
#PID=`ps -ef | grep ${myweb_env} | grep -v grep | awk '{print $2}'`
PID=$(ps x --sort=start_time | grep -v grep | grep -m 1 -w Dproc_name=${myweb_env} | awk '{print $1}')
if [ -n "$PID" ];then
echo "stopping app ${PID} ..."
kill -9 $PID
else
echo "stopped ... "
fi
}
function status(){
PID=`ps x |grep -v grep| grep ${myweb_env} | awk '{print $1}'`
if [ $PID > 0 ];then
echo
echo "${myweb_env} is running ..."
echo
else
echo
echo "${myweb_env} stopped ... "
echo
fi
ps -ef | grep ${myweb_env}
}
function restart(){
stop
sleep 2
start
}
function main(){
case $1 in
'start')
start
;;
'stop')
stop
;;
'restart')
restart
;;
'status')
status
;;
esac
}
main $1
