#!/bin/bash

# 使用说明
# 输入：./service.sh 启动或重启，并打印日志
# 输入：./service.sh noLog 启动或重启，不打印日志
# 输入：./service.sh stop 停止

# 配置JAR文件的名称，使用的端口号，JDK的安装目录（未填写时，使用环境变量），以及 -Xms 和 -Xmx的值
JAR_NAME="*.jar"
PORT_NUMBER=8080
JDK_DIR=""
XMS="1g"
XMX="1g"

function start() {
    echo "starting application"
    if [ -z "$JDK_DIR" ]; then
        nohup java -Xms$XMS -Xmx$XMX -jar $JAR_NAME >>out.txt 2>&1 &
    else
        nohup $JDK_DIR/bin/java -Xms$XMS -Xmx$XMX -jar $JAR_NAME >>out.txt 2>&1 &
    fi
    if [ "$1" != "noLog" ]; then
        tail -f ./out.txt
    fi
}

function stop() {
    PID=$(netstat -tunlp | grep -w $PORT_NUMBER | awk '{ print substr($7,1,index($7,"/") - 1) }')
    if [ -z "$PID" ]; then
        echo "application is already stopped"
    else
        echo "kill $PID"
        kill -9 $PID
    fi
}

case "$1" in
    "stop")
        stop
        ;;
    "noLog")
        stop
        start "noLog"
        ;;
    *)
        stop
        start
        ;;
esac