응용 프로그램 충돌 후 자동 재시작 실행 파일 [Windows] 시작하는 방법이 필요합니다. Nuc에서 Windows

키오스크를위한 독립 실행 형 응용 프로그램 만들기 24

드물게 응용 프로그램이 충돌하더라도 자동으로 다시 시작하는 방법이 필요합니다. Nuc에서 Windows 10을 실행하고 있습니다.

Windows 전문가가이를 달성하는 가장 좋은 방법을 제안 할 수 있습니까?



답변

한 가지 해결책은 무한 for루프가 있는 배치 파일을 사용 하여 응용 프로그램이 닫히면 자동으로 다시 시작하는 것입니다. 애플리케이션 설계 방식에 따라 여기에는 두 가지 가능성이 있습니다.

응용 프로그램이 시작되어 동일한 프로세스에서 실행되는 경우 매우 간단한 배치 파일을 사용할 수 있습니다.

@echo off
:Start
C:\path\to\application.exe
:: Wait 30 seconds before restarting.
TIMEOUT /T 30
GOTO:Start

이것은 무한정 실행됩니다. 언제든지 application.exe닫히거나 충돌하면 배치 파일이 다시 시작됩니다.

이 것 없는 경우 일 application.exe출시 subapp.exe후하고 application.exe닫습니다. 이 경우 더 복잡한 것이 필요합니다.

@ECHO off
SET _PollingInterval=30

:BatchStart
C:\path\to\application.exe

:Start
:: Uncomment the following line on versions of Windows prior to Windows 7 and comment out the TIMEOUT line. The PING solution will not be 100% accurate with _PolingInterval.
:: PING 127.0.0.1 -n %_PollingInterval% >nul
TIMEOUT /T %_PollingInterval%

SET PID=
FOR /F "tokens=2 delims= " %%i IN ('TASKLIST ^| FIND /i "subapp.exe"') DO SET PID=%%i
IF [%PID%]==[] (
    ECHO Application was not running. Restarting script.
    GOTO BatchStart
)
GOTO Start

GOTO:EOF

응용 프로그램에 다양한 프로세스가있을 수있는 경우 FINDSTR /i "subapp.exe application.exe"대신 대신 비슷한 것을 사용할 수 FIND /i "subapp.exe"있지만 공백을 FINDSTR델리 미네 이터 로 사용하는 것처럼 이름이 공백 인 프로세스에는 작동하지 않습니다 .

이러한 배치 파일을 시작한 후에 중지하려면 응용 프로그램을 열어두고 명령 프롬프트로 전환하십시오. 그런 다음 Ctrl+를 사용 C하고 스크립트를 끝내고 싶다는 것을 인정하십시오. 스크립트가 종료되면 응용 프로그램을 닫습니다.

더 읽을 거리 :


답변