PATH 탐색에 기대면 작업 스케줄러 컨텍스트의 PATH가 로그온 세션과 다를 때
powershell.exe를 찾지 못하고, 그 경우 워치독은 로그 한 줄 없이 실패만 남긴다.
%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe로 고정한다.
재부팅 뒤 워치독이 5분마다 콘솔 창에 실패만 뿌리던 문제의 원인 세 가지를 고친다.
- 워치독이 DB 다운을 감지하고 직접 복구한다. postgres(vignette-dev-db) 기동은
boot 담당이라 start-public-runtime.ps1 재호출로는 절대 복구되지 않았고, 그 결과
워치독은 고칠 수 없는 대상에 start를 무한 재시도하며 실패만 기록했다. db를
health check 항목에 넣고, 재시작 전에 컨테이너를 되살리며, 복구 실패 시에는
runtime 재시작을 시도하지 않고 종료한다.
- 작업 액션을 wscript 런처(watch-public-runtime-task.vbs) 경유로 등록한다.
powershell.exe를 직접 등록하면 -WindowStyle Hidden이어도 conhost 창이 매 실행
번쩍이고, 5분 주기에서는 그것이 곧 화면을 가리는 창이 된다. 런처는 pin 인자를
해석하지 않고 전달만 하며 provenance 검증은 기존대로 watchdog이 수행한다.
- boot이 web preview 상태를 보고 -SkipWebRestart를 조건부로 붙인다. 무조건 스킵하면
재부팅 직후처럼 vite가 죽은 상태에서 boot 경로로는 web이 영영 복구되지 않았다.
hidden trigger는 액션이 wscript 런처를 거치는지 함께 검증하도록 맞췄다.