提交
This commit is contained in:
22
backend/restart_backend.cmd
Normal file
22
backend/restart_backend.cmd
Normal file
@@ -0,0 +1,22 @@
|
||||
@echo off
|
||||
rem Restart backend: kill old process tree on port 8000, then start uvicorn with --reload.
|
||||
rem Log goes to repo root backend_run.log. Usage: cmd /c backend\restart_backend.cmd
|
||||
rem NOTE: keep this file ASCII only (cmd.exe reads it as GBK, UTF-8 Chinese breaks parsing).
|
||||
cd /d "%~dp0"
|
||||
|
||||
rem uvicorn --reload spawns launcher -> reloader -> worker, and the reloader holds the :8000
|
||||
rem socket. Killing the listener with /T tears down its worker child too, and the launcher
|
||||
rem exits on its own once its child is gone -- so no orphan survives. (Git Bash: restart_backend.sh)
|
||||
for /f "tokens=5" %%a in ('netstat -ano ^| findstr /r /c:":8000 .*LISTENING"') do (
|
||||
echo kill old PID %%a
|
||||
taskkill /PID %%a /T /F >nul 2>&1
|
||||
)
|
||||
rem sleep ~2s (GNU timeout from Git Bash PATH shadows cmd timeout, use ping instead)
|
||||
ping -n 3 127.0.0.1 >nul
|
||||
|
||||
rem Clear SSLKEYLOGFILE (has U+202A control chars that crash asyncpg, same as env -u)
|
||||
set "SSLKEYLOGFILE="
|
||||
|
||||
rem redirect must live inside cmd /c - a redirect on the start line is not inherited by the child
|
||||
start "stock-backend" /min cmd /c ".venv\Scripts\python.exe -m uvicorn app.main:app --reload --port 8000 > ..\backend_run.log 2>&1"
|
||||
echo backend restarting, log: backend_run.log
|
||||
Reference in New Issue
Block a user