Автоматический перезапуск исполняемого файла после сбоя приложения [Windows]

создание автономного приложения для киоска, который должен быть запущен 24 7.

в редких даже сбои приложения мне нужно каким-то образом, чтобы сделать его автоматический перезапуск.
Я запускаю Windows 10 на Nuc.

могут ли эксперты Windows предложить лучший способ достижения этой цели?

15
задан Bachalo
20.02.2023 8:03 Количество просмотров материала 3363
Распечатать страницу

1 ответ

одним из решений является использование пакетного файла с бесконечным 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 использует пространство как deliminator.

чтобы остановить эти пакетные файлы после их запуска, оставьте откройте приложение и переключитесь в командную строку. Тогда используйте Ctrl + C и подтвердите, что хотите завершить сценарий. После завершения работы скрипта закройте приложение.

читайте далее:

2
отвечен Worthwelle 2023-02-21 15:51

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх