stop.sh 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/bin/sh
  2. APP_HOME=$HOME
  3. . "$APP_HOME/conf/setenv.sh"
  4. stop_app() {
  5. APP_NAME=$1
  6. PID_FILE="$PID_DIR/$APP_NAME.pid"
  7. if [ ! -f "$PID_FILE" ]; then
  8. echo "[WARN] $APP_NAME is not running (no PID file)"
  9. return
  10. fi
  11. PID=$(cat "$PID_FILE")
  12. if ! ps -p "$PID" > /dev/null 2>&1; then
  13. echo "[WARN] $APP_NAME: PID file exists but no process. Removing stale file."
  14. rm -f "$PID_FILE"
  15. return
  16. fi
  17. echo "[INFO] $APP_NAME: Sending SIGTERM to PID $PID"
  18. #kill -15 "$PID"
  19. kill -15 "$PID" >/dev/null 2>&1
  20. echo "[INFO] $APP_NAME: Terminate waiting..."
  21. sleep 5
  22. i=0
  23. while [ "$i" -le 8 ]; do
  24. sleep 1
  25. if ! ps -p "$PID" > /dev/null 2>&1; then
  26. echo "[INFO] $APP_NAME stopped gracefully."
  27. rm -f "$PID_FILE"
  28. return
  29. fi
  30. echo "[INFO] $APP_NAME stopping..."
  31. i=`expr "$i" + 1`
  32. done
  33. echo "[INFO] $APP_NAME: Force killing PID $PID"
  34. kill -9 "$PID"
  35. rm -f "$PID_FILE"
  36. echo "[INFO] Cleanup complete."
  37. }
  38. case "$1" in
  39. utic-pits-server)
  40. stop_app "$1"
  41. ;;
  42. *)
  43. for APP in $APP_LIST; do
  44. stop_app "$APP"
  45. done
  46. ;;
  47. esac
  48. echo ""
  49. echo "[INFO] Remaining Java processes:"
  50. ps -eaf | grep java | grep jar | grep utic-ptis-server | grep -v grep