@echo off chcp 65001 >nul echo === ProxyPool Startup === echo. set "ROOT_PATH=%~dp0.." set "BACKEND_PORT=9949" set "FRONTEND_PORT=9948" REM 1. Clean processes on ports echo [1/4] Cleaning old processes... for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":%BACKEND_PORT%" ^| findstr "LISTENING"') do ( taskkill /F /PID %%a >nul 2>&1 echo Stopped port %BACKEND_PORT% (PID: %%a) ) for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":%FRONTEND_PORT%" ^| findstr "LISTENING"') do ( taskkill /F /PID %%a >nul 2>&1 echo Stopped port %FRONTEND_PORT% (PID: %%a) ) echo Cleanup complete! echo. REM 2. Start Backend echo [2/4] Starting backend (FastAPI)... if exist "%ROOT_PATH%\venv\Scripts\python.exe" ( set "PYTHON_PATH=%ROOT_PATH%\venv\Scripts\python.exe" echo Using venv ) else ( set "PYTHON_PATH=python" echo Using system Python ) cd /d "%ROOT_PATH%" set "PYTHONIOENCODING=utf-8" REM Clear old logs if exist "%ROOT_PATH%\logs\backend_startup.log" del /f "%ROOT_PATH%\logs\backend_startup.log" >nul 2>&1 if exist "%ROOT_PATH%\logs\backend_error.log" del /f "%ROOT_PATH%\logs\backend_error.log" >nul 2>&1 REM Start backend start /B "" "%PYTHON_PATH%" -u main.py >"%ROOT_PATH%\logs\backend_startup.log" 2>"%ROOT_PATH%\logs\backend_error.log" echo Backend started echo. REM 3. Wait for backend echo [3/4] Waiting for backend... set RETRY_COUNT=0 set BACKEND_READY=0 :WAIT_LOOP if %RETRY_COUNT% geq 10 goto WAIT_DONE timeout /t 2 /nobreak >nul set /a RETRY_COUNT+=1 ping -n 1 127.0.0.1 -w 500 >nul timeout /t 1 /nobreak >nul REM Try to connect to backend powershell -Command "try { $r = Invoke-RestMethod -Uri 'http://127.0.0.1:9949/' -TimeoutSec 2 -ErrorAction Stop; exit 0 } catch { exit 1 }" >nul 2>&1 if %errorlevel% equ 0 ( set BACKEND_READY=1 goto WAIT_DONE ) echo Waiting... (%RETRY_COUNT%/10) if exist "%ROOT_PATH%\logs\backend_startup.log" ( for /f "delims=" %%i in ('powershell -Command "Get-Content '%ROOT_PATH%\logs\backend_startup.log' -Tail 1" 2^>nul') do ( echo Log: %%i ) ) goto WAIT_LOOP :WAIT_DONE if %BACKEND_READY% equ 0 ( echo. echo Backend failed to start! echo Check error log: %ROOT_PATH%\logs\backend_error.log pause exit /b 1 ) echo Backend is ready! echo. REM 4. Start Frontend echo [4/4] Starting frontend (Vite)... start /B "" cmd /c "cd /d "%ROOT_PATH%\frontend" && npm run dev" >nul 2>&1 echo Frontend started echo. echo === All services started === echo Backend: http://127.0.0.1:9949 echo Frontend: http://localhost:9948 echo. echo Please open frontend in browser timeout /t 5 >nul