#!/bin/bash # YouTube Summarizer Backend Restart Script # Kills existing backend server and starts a new one echo "🔄 Restarting YouTube Summarizer Backend..." # Kill any existing backend processes echo "🛑 Stopping existing backend processes..." # Kill processes on backend port range (8000-8010) for port in {8000..8010}; do lsof -ti :$port | xargs -r kill -9 2>/dev/null && echo " Killed process on port $port" done # Also kill by process name patterns pkill -f "backend/main.py" 2>/dev/null || true pkill -f "python.*backend.*main.py" 2>/dev/null || true pkill -f "python3.*backend.*main.py" 2>/dev/null || true pkill -f "uvicorn.*main:app" 2>/dev/null || true # Check if any processes were found if [ $? -eq 0 ]; then echo " Stopped existing backend processes" else echo " No existing backend processes found" fi # Wait a moment for processes to terminate sleep 2 # Start the backend server echo "🚀 Starting backend server..." cd "$(dirname "$0")/.." || exit 1 # Export PYTHONPATH and start backend export PYTHONPATH="$(pwd)" nohup python3.11 backend/main.py > logs/backend.log 2>&1 & BACKEND_PID=$! # Wait a moment and check if server started successfully sleep 3 if ps -p $BACKEND_PID > /dev/null; then echo "✅ Backend server started successfully (PID: $BACKEND_PID)" echo "📊 Backend running on: http://localhost:8000" echo "📚 API docs available at: http://localhost:8000/docs" echo "📋 Logs: tail -f logs/backend.log" else echo "❌ Backend server failed to start" echo "📋 Check logs: cat logs/backend.log" exit 1 fi