#!/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