| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | 
							- #!/bin/sh
 
- SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
 
- APP_HOME="$(dirname "$SCRIPT_DIR")"
 
- . "$APP_HOME/conf/setenv.sh"
 
- PID_SUFFIX=".pid"
 
- stop_app() {
 
-   APP_NAME=$1
 
-   PID_FILE="$BIN_DIR/conf/$APP_NAME$PID_SUFFIX"
 
-   if [ ! -f "$PID_FILE" ]; then
 
-     echo "[WARN] $APP_NAME is not running (no PID file)"
 
-     return
 
-   fi
 
-   PID=$(cat "$PID_FILE")
 
-   if ! ps -p "$PID" > /dev/null 2>&1; then
 
-     echo "[WARN] $APP_NAME: PID file exists but no process. Removing stale file."
 
-     rm -f "$PID_FILE"
 
-     return
 
-   fi
 
-   echo "[INFO] $APP_NAME: Sending SIGTERM to PID $PID"
 
-   kill -15 "$PID"
 
-   for i in $(seq 0 12); do
 
-     sleep 1
 
-     if ! ps -p "$PID" > /dev/null 2>&1; then
 
-       echo "[INFO] $APP_NAME stopped gracefully."
 
-       rm -f "$PID_FILE"
 
-       return
 
-     fi
 
-     echo "[INFO] $APP_NAME stopping..."
 
-   done
 
-   echo "[INFO] $APP_NAME: Force killing PID $PID"
 
-   kill -9 "$PID"
 
-   rm -f "$PID_FILE"
 
-   echo "[INFO] Cleanup complete."
 
- }
 
- case "$1" in
 
-   rota-local-client | rota-local-server | moct-local-client)
 
-     stop_app "$1"
 
-     ;;
 
-   all)
 
-     for APP in $APP_LIST; do
 
-       stop_app "$APP"
 
-     done
 
-     ;;
 
-   *)
 
-     echo "Usage: $0 {rota-local-client|rota-local-server|moct-local-client|all}"
 
-     exit 1
 
-     ;;
 
- esac
 
- echo ""
 
- echo "[INFO] Remaining Java processes:"
 
- ps -eaf | grep java | grep jar | grep rota-local- | grep -v grep
 
 
  |