#!/bin/bash

JAR_NAME=helpdesk-service.jar
JVM_OPTIONS="-Xms512m -Xmx1g -XX:+UseG1GC"

#使用说明，用来提示输入参数
usage() {
  echo "Usage: sh deploy.sh [start|stop|restart|status]"
}
jps

#检查程序是否在运行
jar_is_exist() {
  pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')
  #如果不存在返回1，存在返回0
  if [ -z "${pid}" ]; then
    return 1
  else
    return 0
  fi
}

#启动方法
start() {
  echo -e "\033[32m === ${JAR_NAME} === \033[0m"
  jar_is_exist
  if [ $? -eq "0" ]; then
    echo "[${JAR_NAME}] is up (PID: ${pid})"
  else
    echo "Startup ${JAR_NAME}..."
    nohup java -jar $JAR_NAME >/dev/null 2>&1 &
    echo "[${JAR_NAME}] is up "
  fi
}

#停止方法
stop() {
  echo -e "\033[32m === ${JAR_NAME} === \033[0m"
  jar_is_exist
  if [ $? -eq "0" ]; then
    echo "[${JAR_NAME}] is up (PID: ${pid})"
    echo "Shutdown [${JAR_NAME}]..."
    kill -9 ${pid}
  else
    echo -e "[${JAR_NAME}] is \033[31m down \033[0m"
  fi
}

#输出运行状态
status() {
  echo -e "\033[32m === ${JAR_NAME} === \033[0m"
  jar_is_exist
  if [ $? -eq "0" ]; then
    echo "[${JAR_NAME}] is up (PID: ${pid})"
  else
    echo -e "[${JAR_NAME}] is \033[31m down \033[0m"
  fi
}

#重启
restart() {
  stop
  sleep 1
  start
}

#根据输入参数，选择执行对应方法，不输入则执行使用说明
case "$1" in
"start")
  start
  ;;
"stop")
  stop
  ;;
"status")
  status
  ;;
"restart")
  restart
  ;;
"usage")
  usage
  ;;
*)
  restart
  ;;
esac