#!/bin/bash
export BASE_DIR=`dirname $0`;
JAR_NAME="verAutoAuth-3.0.0-RELEASE.jar";
SERVICE_NAME="verAutoAuth";
PID_FILE_NAME="verAutoAuth.txt";
JAVA_OPT="${JAVA_OPT} -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m"
# OOM异常 堆转储
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof"
# GC相关参数
JAVA_OPT="${JAVA_OPT} -XX:+UseG1GC -XX:ParallelGCThreads=4 -XX:ConcGCThreads=2 -XX:MaxGCPauseMillis=200"
# GC日志打印
JAVA_OPT="${JAVA_OPT} -Xloggc:${BASE_DIR}/logs/server_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
function start() {
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>now is starting $JAR_NAME.....<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
nohup java $JAVA_OPT -Djava.io.tmpdir=$BASE_DIR/tmp -Dspring.config.location=$BASE_DIR/cfg/application.properties -jar $BASE_DIR/$JAR_NAME >/dev/null 2>&1 &
}
function stop() {
echo ">>>>>>>>>>>>>>>>>>>>>>>>>now is stoping $JAR_NAME<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
if [ -f $BASE_DIR/$PID_FILE_NAME ]; then
FPID=$(cat $BASE_DIR/$PID_FILE_NAME)
kill -9 $FPID
rm -rf $BASE_DIR/$PID_FILE_NAME
echo "$JAR_NAME success"
else
echo "$JAR_NAME has been stoped..."
fi
}
function restart() {
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>now is restarting $JAR_NAME......<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
if [ -f $BASE_DIR/$PID_FILE_NAME ]; then
FPID=$(cat $BASE_DIR/$PID_FILE_NAME)
kill -9 $FPID
rm -rf $BASE_DIR/$PID_FILE_NAME
echo "$JAR_NAME success"
else
echo "$JAR_NAME has been stoped..."
fi
nohup java $JAVA_OPT -Djava.io.tmpdir=$BASE_DIR/tmp -Dspring.config.location=$BASE_DIR/cfg/application.properties -jar $BASE_DIR/$JAR_NAME >/dev/null 2>&1 &
}
function install() {
cat >/etc/systemd/system/captain-helper-api.service <<EOL
[Unit]
Description=Hisign $SERVICE_NAME System
After=network.target
[Service]
Type=forking
ExecStart=$BASE_DIR/$SERVICE_NAME start
ExecReload=$BASE_DIR/$SERVICE_NAME restart
ExecStop=$BASE_DIR/$SERVICE_NAME stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOL
systemctl daemon-reload
}
function uninstall() {
systemctl daemon-reload
systemctl stop $SERVICE_NAME.service
systemctl disable $SERVICE_NAME.service
rm -f /etc/systemd/system/$SERVICE_NAME.service
systemctl daemon-reload
}
if [[ "$1" = "start" ]]; then
start
elif [[ "$1" = "stop" ]]; then
stop
elif [[ "$1" = "install" ]]; then
install
elif [[ "$1" = "uninstall" ]]; then
uninstall
elif [[ "$1" = "restart" ]]; then
restart
else
echo "$SERVICE_NAME (start/stop/restart/install/uninstall) version: $JAR_NAME "
fi
jar包启动脚本
于 2023-06-15 16:31:55 首次发布