#!/bin/bash

original_command="$0"
application_name="leopard-server-1.0.0.jar"

function get_pid() {
  ID=$(ps -ef | grep "$application_name" | grep -v grep | grep -v $original_command | awk '{ print $2 }')
  if [[ -z "$ID" ]]; then
    ID=$(ps aux | grep "$application_name" | grep -v grep | grep -v $original_command | awk '{print $2}')
    if [[ -z "$ID" ]]; then
      ID=$(/home/ubuntu/jdk-21.0.8+9/bin/jps -lmvV | grep "$application_name" | awk '{print $1}')
    fi
  fi
  echo $ID
}

pid=$(get_pid)

if [[ -z "$pid" ]]; then
  echo "Application is already stopped."
  exit 0
fi

echo "Stopping $pid..."
kill $pid

LOOPS=0
while (true); do
  cpid=$(get_pid)
  if [[ -z "$cpid" ]]; then
    echo "Oook! cost:$LOOPS"
    break
  fi
  LOOPS=$(($LOOPS+1))
  if [[ $(($LOOPS%15)) -eq 0 ]]; then
    echo "Wait timeout, try to force kill $pid..."
    kill -9 $pid
  fi
  sleep 1s
done

