#!/bin/bash
export BUILD_ID=dontKillMe
# Throw exception termination program
set -e
umask 022
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
#Set Java Home Conf
export JAVA_HOME=/usr/local/jdk-11.0.17
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
SKYWALKING_IP="10.126.128.42:11800"
RUN_PORT="8083"
# app name
APP_NAME="appName"
APP_ROOT_PATH="product"
HEALTH_URL="http://127.0.0.1:${RUN_PORT}/${APP_ROOT_PATH}/actuator/health"
ENV=$2
RUN_HOME="/data/www/${APP_NAME}-${RUN_PORT}"
APPUSER=admu
JAR_NAME="${APP_NAME}-${ENV}.jar"
SKYWALKING_AGENT="-javaagent:/data/www/skywalking-agent/skywalking-agent.jar=agent.service_name=${APP_NAME}-${ENV},collector.backend_service=${SKYWALKING_IP}"
#dev
JAVA_OPTIONS="-server -Xms1g -Xmx1g -XX:MaxDirectMemorySize=512m -XX:+UseCompressedOops -Djava.security.egd=file:/dev/./urandom -XX:ErrorFile=./logs/hs_err_%p.log -Dfile.encoding=UTF-8"
JVM_OPTIONS="${SKYWALKING_AGENT} ${JAVA_OPTIONS} -jar ${RUN_HOME}/${JAR_NAME} --spring.profiles.active=${ENV} --server.port=${RUN_PORT}"
#Set Logfile conf
LOGPATH="/data/logs/${APP_NAME}"
[ ! -d ${LOGPATH} ] && sudo mkdir -p ${LOGPATH}
start()
{
if [ -f $RUN_HOME/$JAR_NAME ];
then
echo "Starting $JAR_NAME @ $RUN_PORT"
cd ${RUN_HOME}
echo "nohup java ${JVM_OPTIONS} > /dev/null 2>&1 &"
nohup java ${JVM_OPTIONS} > /dev/null 2>&1 &
# check times
start_times=600
httpCode=0
for p in $(seq 1 $start_times); do
httpCode=$(curl --connect-timeout 10 --max-time 20 --retry 3 -X "GET" -I -o /dev/null -s -w %{http_code} ${HEALTH_URL} -H "Content-Type: application/vnd.spring-boot.actuator.v3+json;charset=UTF-8") || true
if [[ $httpCode -eq 200 ]]; then
echo "$p checking status... success>$httpCode"
break
fi
echo "$p checking status...$httpCode"
sleep 1
done
if [[ ${httpCode} -eq 200 ]]; then
resp=$(curl -s --connect-timeout 10 --max-time 20 --retry 3 -X "GET" ${HEALTH_URL}) || true
result=`echo "$resp" | grep "DOWN"` || true
if [[ "${result}" != "" ]]; then
echo "application started fail: ${resp}"
exit 126
else
echo "application started success"
# nacos UP
start_times=600
for p in $(seq 1 $start_times); do
nacos_up=$(curl --connect-timeout 10 --max-time 20 --retry 3 -X "POST" -I -o /dev/null -s -w %{http_code} "http://127.0.0.1:${RUN_PORT}/${APP_ROOT_PATH}/actuator/serviceregistry?status=UP" -H "Content-Type: application/vnd.spring-boot.actuator.v3+json;charset=UTF-8") || true
if [[ $nacos_up -eq 200 ]]; then
echo "$p application nacos up success: ${nacos_up}"
break;
else
echo "$p application nacos up fail: ${nacos_up}"
fi
sleep 1
done
fi
else
echo "can not check status, httpCode: ${httpCode}"
exit 126
fi
RETVAL=$?
return ${RETVAL}
fi
}
stop()
{
echo "stop the application-start"
if [ -f $RUN_HOME/$JAR_NAME ];
then
appjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep | awk '{print$2}'`
if [ ! $appjavapid ]; then
echo "no java process"
return
fi
start_times=60
for e in $(seq 1 $start_times);
do
COSTTIME=$(($start_times - $e ))
appjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep | awk '{print$2}'`
echo "$e stop the application ${APP_NAME} pid is $appjavapid"
if [ -n "$appjavapid" ]; then
kill $appjavapid
echo "$e stopping java lasts `expr $COSTTIME` seconds."
else
echo "$e java process has exited"
break;
fi
sleep 1
done
if [ -n "$appjavapid" ]; then
echo "java process ${JAR_NAME} timeout, now force kill. $appjavapid"
kill -9 $appjavapid
fi
echo "${JAR_NAME} stop success"
fi
echo "stop the application-end"
}
status()
{
APPPID=`ps aux | grep ${JAR_NAME} | grep ${RUN_PORT} | grep -v grep | awk '{print $2}' `
if [[ ! -z ${APPPID} ]]
then
echo "INFO" "${JAR_NAME} PID : ${APPPID} , Port: $port , It looks normal."
else
echo "ERROR" "Sorry... Can't Find The ${JAR_NAME} !"
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
echo "Restaring ...."
stop
start
;;
status)
status;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
# last command
exit
没有合适的资源?快使用搜索试试~ 我知道了~
jenkins部署脚本
资源推荐
资源详情
资源评论
收起资源包目录
jenkins部署脚本.zip (2个子文件)
jenkins部署脚本
startup.sh 5KB
jenkins.sh 2KB
共 2 条
- 1
资源评论
morganEngineer
- 粉丝: 36
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功