stop_all.sh 800 Bytes
#!/bin/bash
BASE_DIR=$(cd "$(dirname "$0")"; pwd)

# Load shared configuration to get ports
if [ -f "$BASE_DIR/.env.sh" ]; then
    source "$BASE_DIR/.env.sh"
else
    echo "Error: .env.sh not found in $BASE_DIR"
    exit 1
fi

echo "Stopping Z-Image Services..."

if command -v pm2 &> /dev/null; then
    pm2 stop z-image-backend z-image-frontend
    pm2 delete z-image-backend z-image-frontend
    echo "Stopped via PM2."
else
    # Fallback to port-based kill using variables from .env.sh
    pids=$(lsof -t -i:$LOCAL_BACKEND_PORT -i:$LOCAL_FRONTEND_PORT)
    if [ -n "$pids" ]; then
        kill -9 $pids
        echo "Killed PIDs on ports $LOCAL_BACKEND_PORT and $LOCAL_FRONTEND_PORT: $pids"
    else
        echo "No processes found on ports $LOCAL_BACKEND_PORT/$LOCAL_FRONTEND_PORT"
    fi
fi