| 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
|