stop.sh 2.54 KB
#!/bin/bash

# Stop script for Search Engine services
# This script stops both backend and frontend servers

echo "========================================"
echo "Stopping Search Engine Services"
echo "========================================"

# Kill processes on port 6002 (backend)
BACKEND_PIDS=$(lsof -ti:6002 2>/dev/null)
if [ ! -z "$BACKEND_PIDS" ]; then
    echo "Stopping backend server(s) on port 6002..."
    for PID in $BACKEND_PIDS; do
        echo "  Killing PID: $PID"
        kill -TERM $PID 2>/dev/null || true
    done
    sleep 2
    # Force kill if still running
    REMAINING_PIDS=$(lsof -ti:6002 2>/dev/null)
    if [ ! -z "$REMAINING_PIDS" ]; then
        echo "  Force killing remaining processes..."
        for PID in $REMAINING_PIDS; do
            kill -KILL $PID 2>/dev/null || true
        done
    fi
    echo "Backend server stopped."
else
    echo "No backend server found running on port 6002."
fi

# Kill processes on port 6003 (frontend)
FRONTEND_PIDS=$(lsof -ti:6003 2>/dev/null)
if [ ! -z "$FRONTEND_PIDS" ]; then
    echo "Stopping frontend server(s) on port 6003..."
    for PID in $FRONTEND_PIDS; do
        echo "  Killing PID: $PID"
        kill -TERM $PID 2>/dev/null || true
    done
    sleep 2
    # Force kill if still running
    REMAINING_PIDS=$(lsof -ti:6003 2>/dev/null)
    if [ ! -z "$REMAINING_PIDS" ]; then
        echo "  Force killing remaining processes..."
        for PID in $REMAINING_PIDS; do
            kill -KILL $PID 2>/dev/null || true
        done
    fi
    echo "Frontend server stopped."
else
    echo "No frontend server found running on port 6003."
fi

# Also stop any processes using PID files
if [ -f "logs/backend.pid" ]; then
    BACKEND_PID=$(cat logs/backend.pid 2>/dev/null)
    if [ ! -z "$BACKEND_PID" ] && kill -0 $BACKEND_PID 2>/dev/null; then
        echo "Stopping backend server via PID file (PID: $BACKEND_PID)..."
        kill -TERM $BACKEND_PID 2>/dev/null || true
        sleep 2
        kill -KILL $BACKEND_PID 2>/dev/null || true
    fi
    rm -f logs/backend.pid
fi

if [ -f "logs/frontend.pid" ]; then
    FRONTEND_PID=$(cat logs/frontend.pid 2>/dev/null)
    if [ ! -z "$FRONTEND_PID" ] && kill -0 $FRONTEND_PID 2>/dev/null; then
        echo "Stopping frontend server via PID file (PID: $FRONTEND_PID)..."
        kill -TERM $FRONTEND_PID 2>/dev/null || true
        sleep 2
        kill -KILL $FRONTEND_PID 2>/dev/null || true
    fi
    rm -f logs/frontend.pid
fi

echo "========================================"
echo "All services stopped successfully!"
echo "========================================"