First Commit
ci / go (push) Waiting to run
ci / go-db (agent) (push) Waiting to run
ci / go-db (config) (push) Waiting to run
ci / go-db (db) (push) Waiting to run
ci / go-db (evidence) (push) Waiting to run
ci / go-db (llmrec) (push) Waiting to run
ci / go-db (server) (push) Waiting to run
web / web (push) Waiting to run
docs / links (push) Canceled after 0s
detections / detections (push) Canceled after 0s
ci / go (push) Waiting to run
ci / go-db (agent) (push) Waiting to run
ci / go-db (config) (push) Waiting to run
ci / go-db (db) (push) Waiting to run
ci / go-db (evidence) (push) Waiting to run
ci / go-db (llmrec) (push) Waiting to run
ci / go-db (server) (push) Waiting to run
web / web (push) Waiting to run
docs / links (push) Canceled after 0s
detections / detections (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
@echo off
|
||||
rem 콘솔을 UTF-8 로 전환합니다. 그러지 않으면 이 파일의 한글이 GBK 터미널에서 깨집니다.
|
||||
chcp 65001 >nul 2>&1
|
||||
rem ARTEX 데몬 시작 스크립트(Windows)
|
||||
rem
|
||||
rem 사용법:
|
||||
rem start.bat 포그라운드 실행(Ctrl-C 로 중지)
|
||||
rem start.bat -addr :9000 추가 인자는 artex 로 그대로 전달
|
||||
rem
|
||||
rem 이 스크립트는 한 가지만 합니다. artex.exe 를 실행하고, 프로세스가 종료되면 종료 코드를 보고 다시 띄울지 결정합니다.
|
||||
rem
|
||||
rem 0 사용자가 정상 중지 -> 루프 종료
|
||||
rem 75 프로그램이 재시작 요청 -> 즉시 다시 실행(화면에서 "원클릭 업데이트" 또는 "롤백"을 누름)
|
||||
rem 그 외 비정상 종료 -> 백오프 후 다시 실행(1->2->4…최대 60초)
|
||||
rem
|
||||
rem 다운로드·SHA256 체크섬 검증·버전 교체는 여기서 하지 않고, 전부 artex 가 기동할 때 스스로 처리합니다
|
||||
rem (selfupdate 패키지). 스크립트는 단순하게 유지합니다. 자세한 내용은 start.sh 상단 설명을 참고하세요.
|
||||
|
||||
setlocal enabledelayedexpansion
|
||||
cd /d "%~dp0"
|
||||
|
||||
set "BIN=artex.exe"
|
||||
if not exist "%BIN%" (
|
||||
echo [artex] 실행 파일을 찾을 수 없습니다: %BIN% 1>&2
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
set "RESTART_CODE=75"
|
||||
set "MAX_DELAY=60"
|
||||
set /a delay=1
|
||||
|
||||
:loop
|
||||
"%BIN%" %*
|
||||
set "code=!ERRORLEVEL!"
|
||||
|
||||
if "!code!"=="0" (
|
||||
echo [artex] 정상 종료
|
||||
exit /b 0
|
||||
)
|
||||
|
||||
if "!code!"=="%RESTART_CODE%" (
|
||||
rem 업데이트/롤백이 준비되었습니다. 다시 실행하면 artex 가 기동 시 버전 교체를 완료합니다.
|
||||
echo [artex] 재시작 요청: 새 버전 적용…
|
||||
set /a delay=1
|
||||
goto loop
|
||||
)
|
||||
|
||||
echo [artex] 비정상 종료 ^(code=!code!^), !delay!s 후 재시작 1>&2
|
||||
rem timeout 은 리디렉션된 콘솔에서 실패하므로 ping 으로 대체합니다(N초 지연에는 N+1 번 필요).
|
||||
set /a pings=!delay!+1
|
||||
ping -n !pings! 127.0.0.1 >nul 2>&1
|
||||
set /a delay=!delay!*2
|
||||
if !delay! gtr %MAX_DELAY% set /a delay=%MAX_DELAY%
|
||||
goto loop
|
||||
Reference in New Issue
Block a user