diff --git a/script/start.bat b/script/start.bat index da63803..80fa8d7 100644 --- a/script/start.bat +++ b/script/start.bat @@ -11,11 +11,11 @@ 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) + echo Stopped backend (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 Stopped frontend (PID: %%a) ) echo Cleanup complete! echo. @@ -33,12 +33,11 @@ if exist "%ROOT_PATH%\venv\Scripts\python.exe" ( 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 Ensure logs directory exists (used by application logger) +mkdir "%ROOT_PATH%\logs" 2>nul -REM Start backend -start /B "" "%PYTHON_PATH%" -u main.py >"%ROOT_PATH%\logs\backend_startup.log" 2>"%ROOT_PATH%\logs\backend_error.log" +REM Start backend in background of current console +start /B "" "%PYTHON_PATH%" -u main.py echo Backend started echo. @@ -48,33 +47,25 @@ set RETRY_COUNT=0 set BACKEND_READY=0 :WAIT_LOOP -if %RETRY_COUNT% geq 10 goto WAIT_DONE -timeout /t 2 /nobreak >nul +if %RETRY_COUNT% geq 15 goto WAIT_DONE +REM Use ping instead of timeout for PowerShell compatibility +ping -n 3 127.0.0.1 >nul 2>&1 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 +REM Try to connect to backend health endpoint +powershell -Command "try { $r = Invoke-RestMethod -Uri 'http://127.0.0.1:9949/health' -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 - ) -) +echo Waiting... (%RETRY_COUNT%/15) 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 + echo Backend failed to start within 30 seconds! + echo Check the console output above for errors. pause exit /b 1 ) @@ -83,7 +74,9 @@ 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 +cd /d "%ROOT_PATH%\frontend" +start /B "" cmd /c "npm run dev" +cd /d "%ROOT_PATH%" echo Frontend started echo. @@ -91,5 +84,5 @@ 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 +echo Press any key to close this window (services will keep running). +pause >nul diff --git a/script/stop.bat b/script/stop.bat index 232c6cf..895a33f 100644 --- a/script/stop.bat +++ b/script/stop.bat @@ -31,7 +31,8 @@ echo Stopped %STOPPED_COUNT% process(es) echo. echo [2/2] Waiting for processes to fully stop... -timeout /t 2 /nobreak >nul +REM Use ping instead of timeout for PowerShell compatibility +ping -n 3 127.0.0.1 >nul 2>&1 echo. echo === Done ===