#!/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 - search API) 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 6004 (indexer API) INDEXER_PIDS=$(lsof -ti:6004 2>/dev/null) if [ ! -z "$INDEXER_PIDS" ]; then echo "Stopping indexer server(s) on port 6004..." for PID in $INDEXER_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:6004 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 "Indexer server stopped." else echo "No indexer server found running on port 6004." 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 [ -f "logs/indexer.pid" ] && INDEXER_PID=$(cat logs/indexer.pid 2>/dev/null) if [ ! -z "$INDEXER_PID" ] && kill -0 $INDEXER_PID 2>/dev/null; then echo "Stopping indexer server via PID file (PID: $INDEXER_PID)..." kill -TERM $INDEXER_PID 2>/dev/null || true sleep 2 kill -KILL $INDEXER_PID 2>/dev/null || true fi rm -f logs/indexer.pid 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 "========================================"