#!/bin/bash
set -e
# 堆设置
JAVA_OPTS="-Xms2g -Xmx4g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m"
# GC 设置
JAVA_OPTS="$JAVA_OPTS -XX:+UseParNewGC -XX:MaxTenuringThreshold=9 -XX:+UseConcMarkSweepGC -XX:+UseCMSInitiatingOccupancyOnly -XX:+ScavengeBeforeFullGC -XX:+UseCMSCompactAtFullCollection -XX:+CMSParallelRemarkEnabled -XX:CMSFullGCsBeforeCompaction=9 -XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSClassUnloadingEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSPermGenSweepingEnabled -XX:CMSInitiatingPermOccupancyFraction=70 -XX:+ExplicitGCInvokesConcurrent -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintHeapAtGC -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Dclient.encoding.override=UTF-8 -Dfile.encoding=UTF-8 -Djava.security.egd=file:/dev/./urandom"
# GC 额外设置
JAVA_OPTS="$JAVA_OPTS -Xloggc:./gc/gc_%p.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./gc/heap_%p.hprof"
# 用户设置
#jar名称
APP_NAME="ai-video-service"
SERVER_PORT=28020
#环境
PROFILE_NAME=sit-local
LOG_NAME=1.log
# 使用说明
usage() {
echo "usage: spring-boot-jar-starter.sh start|stop|restart"
}
# 启动
start() {
echo start $APP_NAME
startup
echo $APP_NAME started
}
# 启动
startup() {
nohup java -jar $JAVA_OPTS /data/java/service/"${APP_NAME}.jar" --server.port=$SERVER_PORT --spring.profiles.active=$PROFILE_NAME >$LOG_NAME &
}
# 停止
stop() {
PID=$(ps -ef | grep $APP_NAME.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
echo $APP_NAME is already stopped
else
echo kill $PID
kill -9 $PID
fi
}
# 重新启动
restart() {
echo stopping $APP_NAME
stop
echo $APP_NAME stopped
echo start $APP_NAME
startup
echo $APP_NAME started
}
## 下面是主流程
if [ $# -ne 1 ]
then
usage
exit 0
fi
case $1 in
'start')
start
;;
'stop')
stop
;;
'restart')
restart
;;
*)
usage
;;
esac
springboot启动停止脚本
最新推荐文章于 2024-06-21 14:40:38 发布