Программа nhlnchr (NH LauNCHeR) была разработана для поддержки работы стороннего приложения, которое должно было работать постоянно, но иногда завершалось из-за внутренней ошибки.

Пускатель запускает заданное в параметрах приложение и следит за его работой.

Если приложение завершается, то проверяется код его завершения — если произошла ошибка, Пускатель перезапускает приложение. По умолчанию, ошибкой считается все, кроме NO_ERROR, ERROR_CANCELLED и ERROR_SINGLE_INSTANCE_APP. Назначение кодов можно изменить параметром RC.

Во время работы приложения Пускатель периодически проверяет размер выделенной памяти, число объектов GDI, число дескрипторов. Если есть превышение над заданными ограничениями, Пускатель перезапускает приложение.

Дополнительно имеются проверки на зависание и на максимальное время работы.

Загрузка nhlnchr

Загрузка nhlnchr-v1.2.0.zip

Программа не требует установки, работает в Windows XP SP3 и старше.

Примеры использования nhlnchr

Непрерывная работа

Запуск приложения для непрерывной работы (с перезапуском в случае проблем).

nhlnchr -g:100 -h:3 -m:10M -p:3s -s:10s "%ProgramFiles%\Application\app.exe" -ab

Пускатель контролирует работу приложения каждые 15 секунд.
-m:10M — проверяется размер выделенной памяти (Working Set Size), не более 10 МБ.
-g:100 — проверяется число созданных объектов GDI, не более 100.
-h:3 — не более 3 случаев зависания подряд.
Если проверка не прошла, производится перезапуск приложения (числа перезапусков не ограничено).

Перезапуск приложения будет производиться следующим образом:
Пускатель посылает WM_QUIT приложению и ждет до 5 секунд (половина от -s:10s). Если приложение не завершилось само, Пускатель завершает его принудительно (Terminate). Далее делается пауза 3 секунды (-p:3s) и производится запуск приложения.

Если приложение завершилось с кодом NO_ERROR, ERROR_CANCELLED или ERROR_SINGLE_INSTANCE_APP, то приложение считается завершившимся успешно или по команде пользователя, и перезапуска не будет. При любом другом коде завершения считается, что приложение завершилось из-за ошибки, поэтому оно будет запущено заново.

Однократное выполнение

Запуск приложения для однократного выполнения с контролем времени выполнения.

nhlnchr -p:3s -s:10s -r:25m -a:3 "%ProgramFiles%\Application\app.exe" -ab

Предполагается, что заданное приложение должно выполнить определенную задачу, например, расчет данных, за время не более 25 минут и завершить свою работу.

Пускатель контролирует время работы приложения (-r:25m). Если приложение не завершится через 25 минут, это будет расценено как сбой или зависание и приложение будет перезапущено.

Число перезапусков ограничено тремя (-a:3).

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

Если приложение завершилось с кодом NO_ERROR, ERROR_CANCELLED или ERROR_SINGLE_INSTANCE_APP, то приложение считается завершившимся успешно или по команде пользователя, и перезапуска не будет. При любом другом коде завершения считается, что приложение завершилось из-за ошибки, поэтому оно будет запущено заново (с учетом ограничения на число попыток).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *