@echo off setlocal set "TASK_NAME=DocuTranslate" set "HEALTH_URL=http://127.0.0.1:8010/service/meta" set "LOG_DIR=%~dp0logs" set "LOG_FILE=%LOG_DIR%\watchdog.log" if not exist "%LOG_DIR%" mkdir "%LOG_DIR%" powershell -NoProfile -ExecutionPolicy Bypass -Command ^ "$ErrorActionPreference = 'SilentlyContinue';" ^ "$ok = $false;" ^ "try { $r = Invoke-WebRequest -UseBasicParsing -Uri '%HEALTH_URL%' -TimeoutSec 5; $ok = ($r.StatusCode -eq 200) } catch { $ok = $false };" ^ "if (-not $ok) { Add-Content -Path '%LOG_FILE%' -Value ('[' + (Get-Date) + '] Health check failed, restarting %TASK_NAME%...'); schtasks /End /TN '%TASK_NAME%' | Out-Null; Start-Sleep -Seconds 2; schtasks /Run /TN '%TASK_NAME%' | Out-Null }" exit /b 0