Uniday · утилита для интерактивных стендов

Watchdog Бесплатная программа для автоперезапуска приложения на стенде

Uniday Watchdog — программа для Windows, которая следит за приложением на интерактивном стенде или киоске и перезапускает его при краше, зависании и по расписанию. Наблюдение внешнее: менять что-то в вашей сборке не нужно.

  • Бесплатно
  • Windows 10/11, x64
  • Один exe, установка не требуется
  • Изменения в приложении не нужны
Скачать Watchdog Windows 10/11 · 64 бита
Определяем актуальную версию… Все версии
Главное окно Uniday Watchdog: статус приложения на стенде, время работы, счётчик перезапусков и график памяти

Когда Watchdog перезапускает приложение?

Watchdog раз в несколько секунд убеждается, что приложение на стенде живо: есть ли процесс, отвечает ли окно, расходует ли процессорное время. Из этих проверок складываются четыре повода перезапустить приложение — и один повод остановиться и позвать человека.

  • Процесса нет
  • Окно не отвечает
  • Завис по процессору
  • Плановое время
  • Приложение закрылось или упало — Watchdog запускает его заново.
  • Окно перестало отвечать — завершает приложение и запускает заново.
  • Приложение формально работает, но застыло — тоже перезапуск: Watchdog замечает, что программа перестала что-либо делать.
  • Наступило время ежедневного перезапуска — например, ночью, чтобы стенд каждое утро начинал с чистого листа.

Пока приложение загружается, проверки на зависание ему не мешают: сборке дают время подняться. А если она падает снова и снова, Watchdog не будет перезапускать её бесконечно — остановится и напишет вам письмо.

Что случилось Как Watchdog это видит Что делает
Приложение закрылось или упало Процесса нет в списке Запускает заново — по тому же пути, с той же рабочей папкой и аргументами
Окно не отвечает Системный признак «не отвечает» у окна приложения Завершает процесс и запускает заново
Приложение формально живо, но встало намертво Процесс перестал расходовать процессорное время за окно сравнения Завершает процесс и запускает заново
Наступило время планового перезапуска Ежедневное расписание, по умолчанию 00:01 Завершает процесс и запускает заново
Приложение падает по кругу Три перезапуска подряд за пять минут Останавливает мониторинг, показывает статус «Петля рестартов» и отправляет письмо
  • Опрос по таймеру, по умолчанию раз в 10 секунд; окно сравнения для зависания по процессору — 5 секунд. Каждая проверка включается отдельно, интервалы и пороги настраиваются.
  • В первые секунды после запуска проверки «не отвечает» и «зависание по процессору» не применяются — сборка может долго грузиться.
  • Если приложение уже работает (например, его поднял автозапуск Windows), Watchdog не запускает второй экземпляр, а подхватывает существующий процесс.
  • Если приложение запущено с правами выше, чем у Watchdog, и его метрики не читаются, проверки зависания пропускаются: Watchdog не завершает то, что не может измерить.
  • Пропущенный плановый перезапуск (стенд был выключен) догоняется только в пределах часа — более старый пропуск переносится на следующую ночь и не срабатывает днём при посетителях.

Все значения по умолчанию и что за каждым порогом стоит — в описании мониторинга.

Чем это отличается от планировщика задач и PowerShell-скрипта?

Планировщик задач Windows

Считает задачу проваленной, только если она не смогла запуститься. Запущенный и зависший процесс планировщик не видит — и перезапускать его не будет.

PowerShell-скрипт

Умеет проверить отклик окна и объём памяти, но у него нет журнала, писем, интерфейса и защиты от петли перезапусков. Поддерживать его придётся самому.

Uniday Watchdog

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

Как понять, что приложение течёт по памяти?

Утечка памяти — частая причина, по которой стенд к вечеру начинает тормозить, а ночью падает. Watchdog рисует график памяти приложения и пишет над ним, сколько она прибавляет за час. Утечка видна как ровно растущая линия, а не как жалоба посетителя.

На графике отмечено, когда приложение падало и когда ставилась новая версия сборки, — легко сравнить версии между собой. Сам рост памяти Watchdog не лечит: пока сборку не исправили, утечку снимает ежедневный плановый перезапуск.

  • Две линии: private bytes — личная память процесса, на ней утечка не маскируется, и working set — то, что показывает диспетчер задач. В шапке — тренд за сеанс строкой вида «+38 МБ/ч за сеанс».
  • Диапазоны: час, сутки, неделя, всё время. Час — сырые измерения, дальше — линия средних с полем минимум-максимум.
  • Вертикальные маркеры: выход процесса (красный — сбой, серый — штатное завершение) и установка новой версии сборки. Наведение или тап — точные значения обеих линий.
  • Поминутная история хранится на диске около двух месяцев, рядом лежит CSV с версией сборки в каждой строке.
  • Порога-алерта и перезапуска по памяти нет — панель только наблюдает.

Что именно измеряется и где лежит история — в описании мониторинга.

График памяти процесса в Uniday Watchdog: тренд роста за сеанс и маркер сбоя

Что остаётся после сбоя: архив логов и письма

Поднять упавшее приложение — полдела, важно ещё понять, почему оно упало. Watchdog сохраняет лог приложения за каждый сеанс и помечает, чем сеанс закончился: штатно, сбоем, перезапуском по команде Watchdog или чем-то внешним. Любой лог отправляется разработчику сборки письмом прямо из окна — с именем стенда и временем.

Ещё Watchdog сам пишет на почту: сразу, когда приложение ушло в петлю перезапусков, и регулярно — сводку, сколько было инцидентов и каких. Сводка приходит, даже если всё тихо: так вы знаете, что стенд жив.

  • Причины завершения: штатное (код 0), сбой (ненулевой код, в скобках расшифровка, если определена), перезапуск watchdog (зависание, плановый перезапуск, команда оператора), ручное, неизвестно (процесс пропал между проверками).
  • Лог: для Unity Player.log находится сам, для Unreal берётся свежий файл из Saved/Logs, для остальных путь задаётся вручную или остаётся пустым. Большие файлы сохраняются хвостом с пометкой об обрезке.
  • К письму с логом версия Watchdog, имя устройства, время и контекст добавляются сами, комментарий можно дописать.
  • Почта — обычный SMTP: сервер, порт, пользователь, пароль, получатели. Письма двух видов: мгновенное (петля рестартов, неудавшийся перезапуск) и периодическая сводка таблицей с zip-архивом логов. Других каналов уведомлений нет.

Где лежит архив и как читать имена файлов — в описании мониторинга.

Вкладка «Логи приложения» в Uniday Watchdog: архив логов за каждый сеанс с причиной завершения и кодом возврата

Несколько приложений в одном окне

На стенде часто работает не одно приложение: витрина, кинозал, викторина. Watchdog ведёт каждое в своей вкладке — у каждого свой статус, свои перезапуски, свой график памяти и свой архив логов. Расписание, почта и автозапуск общие.

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

  • Своё у каждой вкладки: путь к исполняемому файлу, лог, счётчики перезапусков, график памяти, архив логов, пауза. Общее на весь Watchdog: интервалы и детекторы, время планового перезапуска, автозапуск, почта.
  • Один и тот же исполняемый файл нельзя вести двумя вкладками или двумя копиями Watchdog: вторая покажет «Конфликт цели» и не начнёт мониторинг, пока цель не освободится.
  • Если приложениям нужны разные общие настройки, ставят вторую копию Watchdog в отдельную папку — у неё свой конфиг, свои логи и своя запись автозапуска.
  • Жёсткого лимита вкладок нет, но каждая — свой цикл проверок: на слабом стенде интервал опроса лучше не уменьшать.

Управление вкладками и меню в трее — в инструкции по установке и настройке.

Uniday Watchdog с несколькими вкладками: у каждого приложения на стенде свой статус и свои счётчики

Как обновить билд на стенде без выезда?

  • Папка на Яндекс.Диске
  • Стенды забирают сами
  • Апробация новой версии
  • Откат при сбое

Новую версию сборки не нужно везти на стенд. Вы кладёте её в папку на Яндекс.Диске — стенд сам замечает обновление, скачивает его, проверяет, что файл не повреждён, и подменяет приложение. Если новая версия падает или зависает, стенд сам возвращается к прежней и сообщает об этом.

Для особо важных экспонатов есть ручной режим: версия скачивается заранее, а ставится по вашей команде. Из инфраструктуры нужен только аккаунт Яндекс.Диска, подойдёт бесплатный; свой сервер не нужен.

В публичной папке лежат два файла: zip со сборкой и manifest.json — указатель с версией, именем архива, контрольной суммой sha256, размером и путём к исполняемому файлу.

  1. Раз в 15 минут стенд анонимно читает манифест и скачивает новый архив.
  2. Сверяет контрольную сумму до того, как что-то трогает, распаковывает и подменяет приложение. Указатель версии переключается последним, поэтому потеря питания не оставит на диске половину сборки.
  3. Новая версия проходит апробацию: пока она не отработает несколько здоровых проверок подряд, она считается непроверенной. Упала, зависла или ушла в петлю — стенд откатывается на предыдущую рабочую версию сам, а сбойную отправляет в карантин по контрольной сумме, чтобы не качать её по кругу.

В ручном режиме версии скачиваются на диск, но ставятся по команде: «Перейти на эту версию», «Откатиться», «Удалить с диска». Окно раската и отложенное применение задаются прямо в манифесте. У каждого приложения своя папка обновлений и своя история версий. Сам Watchdog обновляется тем же способом из папки релизов Uniday, наблюдаемое приложение при этом не закрывается.

Что нужно

Аккаунт Яндекс.Диска — подойдёт бесплатный — и одна опубликованная папка со сборкой и манифестом.

Что не нужно

Свой сервер, база данных, токен на стенде, открытые порты, белый IP, VPN, доменное имя. Стенд читает публичную папку анонимно — ни логина, ни токена в его настройках нет.

Ограничения

Транспорт пока только Яндекс.Диск. Публичная папка доступна любому, у кого есть ссылка. Дельта-обновлений нет — каждый раз качается весь архив, и нужен запас места не меньше двух его размеров. Версия в манифесте должна быть новой на каждый релиз.

Формат манифеста, карантин и откат по шагам — в инструкции по обновлению билдов.

Вкладка «Обновления» в Uniday Watchdog: список версий билда со статусами и отметкой текущей
Вкладка «Обновления»: какая версия работает сейчас, какая лежит на диске и какая ждёт в облаке.

Установка за три шага

  1. Скопировать один файл в папку на стенде. Установщика нет.
  2. Запустить и ответить мастеру, какое приложение наблюдать. Через минуту Watchdog уже следит за ним.
  3. Включить автозапуск — после перезагрузки стенд поднимется сам.

Дальше Watchdog живёт в трее и не мешает полноэкранной сборке: цвет иконки показывает, всё ли в порядке. Папку с Watchdog можно перенести на другой компьютер целиком.

  1. Скопировать Watchdog.exe в папку на стенде. Рядом с файлом появятся config.json, папка логов и папка с данными приложений; особых прав не требуется.
  2. Запустить и пройти мастер. Тип приложения — Unity, Unreal или любое другое; путь к исполняемому файлу; при необходимости — имя процесса, путь к логу приложения и аргументы запуска.
  3. Включить автозапуск. Галочки «Запускать Watchdog при запуске Windows» и «Запускать мониторинг при старте Watchdog» — после перезагрузки стенд поднимется сам, даже если мониторинг оставили на паузе.

Когда Watchdog запускает приложение, его окно сворачивается само. На Windows 11 иконка закрепляется у часов сама, на Windows 10 её нужно вытащить к часам вручную. Пути внутри папки относительные, поэтому папка переносится на другой диск или компьютер целиком; заново включаются только автозапуск и пароль почты — они живут за пределами папки.

Пошагово, с ошибками мастера и составом папки — в инструкции по установке и настройке.

Мастер первого запуска Uniday Watchdog: выбор приложения, типа сборки и параметров запуска

Чего Watchdog не делает?

  • Только Windows 10/11 x64. Версий для macOS и Linux нет.
  • Это не режим киоска. Оболочка Windows не блокируется, клавиатура не перехватывается, окно приложения на нужный монитор не переносится, засыпание монитора не отключается.
  • Это не аппаратный watchdog-таймер. Плата в USB или PCI перезагружает компьютер по пропаже сигнала; программный Watchdog перезапускает приложение внутри работающей Windows. Если зависла сама операционная система, поможет только аппаратный.
  • Это не служба Windows. Watchdog работает в сеансе пользователя, поэтому на стенде настраивают автоматический вход в Windows.
  • Он не смотрит на картинку. Чёрный экран или застывший кадр сами по себе не определяются: видны процесс, отклик окна, процессорное время и память.
  • Он не реагирует на память автоматически. График показывает рост, но порога-алерта и перезапуска по памяти нет.
  • Одну и ту же цель нельзя вести двумя копиями — вторая покажет «Конфликт цели».
  • Уведомления — только почта, с обычной SMTP-авторизацией.

Требования и скачивание

  • Windows 10 или Windows 11, 64 бита. Устанавливать .NET не нужно — всё внутри файла.
  • Один исполняемый файл, установщика нет; для копирования в папку особых прав не требуется.
  • Место на диске: сам файл и логи, а при включённом обновлении сборок — запас не меньше двух размеров архива.
  • Ссылка ведёт в публичную папку релизов: рядом с кнопкой показываются версия, дата и sha256 актуального архива.
  • Windows SmartScreen или антивирус могут придержать свежескачанный файл — папку Watchdog и папку со сборками имеет смысл добавить в исключения.
  • Если наблюдаемое приложение работает с правами администратора, а Watchdog — нет, проверки отклика окна и зависания по процессору пропускаются.

Скачать Uniday Watchdog

Вопросы и ответы

Чем это лучше планировщика задач — он же умеет перезапускать при сбое?

Планировщик задач считает задачу проваленной, только если она не смогла запуститься. Запущенный и зависший процесс он не видит и перезапускать не будет. Watchdog проверяет отклик окна и расход процессорного времени, поэтому ловит именно зависшее приложение.

Как программа понимает, что приложение зависло?

Двумя независимыми проверками: системный признак «не отвечает» у окна и остановка расхода процессорного времени за короткое окно сравнения. Обе включены по умолчанию и выключаются по отдельности. В первые секунды после запуска они не применяются, чтобы не прервать долгую загрузку сборки.

Приложение не падает, но течёт по памяти и тормозит — что делать?

Панель «Память процесса» показывает private bytes и working set и считает тренд за сеанс строкой вида «+38 МБ/ч за сеанс», а поминутная история хранится на диске около двух месяцев. Автоматического перезапуска по порогу памяти нет: пока сборку не исправили, утечку снимает ежедневный плановый перезапуск.

Можно ли следить сразу за несколькими программами?

Да, каждому приложению — своя вкладка в одном окне. Свои у вкладки путь к исполняемому файлу, лог, счётчики, график памяти и пауза; общие на весь Watchdog — интервалы, детекторы, время планового перезапуска, автозапуск и почта.

Как перезапускать по расписанию, например каждую ночь?

Ежедневный плановый перезапуск включён по умолчанию, время — 00:01, меняется в настройках. Расписание общее на все вкладки. Пропущенный больше чем на час перезапуск переносится на следующую ночь, а не срабатывает днём при посетителях.

Нужно ли что-то встраивать в мой Unity-билд?

Нет. Наблюдение внешнее: процесс, отклик окна, процессорное время и память. Исходники не нужны, подойдёт любая готовая сборка. Тип приложения — Unity, Unreal или другое — влияет только на автоматический поиск лог-файла и на иконку.

Утилита закрывает все экземпляры программы, а мне нужен один — так можно?

Watchdog ведёт свой процесс — тот, что запущен по указанному пути. Отдельная опция «Завершать экземпляры приложения, запущенные мимо Watchdog» по умолчанию выключена; когда её включают, завершаются только экземпляры того же файла, а одноимённый процесс из другой папки не трогается.

Что будет, если приложение падает сразу после запуска, по кругу?

Перезапускать сборку, которая гаснет сразу после старта, по кругу бессмысленно: стенд весь день мигает экраном, а причина остаётся невыясненной. Поэтому после трёх перезапусков за пять минут Watchdog останавливает мониторинг, показывает статус «Петля рестартов», пишет запись в журнал и при настроенной почте отправляет письмо.

В счёт идут сбой, принудительное завершение при зависании, пропажа процесса и штатный выход раньше чем через 10 секунд после старта. Остановка оператором и штатный выход после 10 секунд работы не считаются. Порог меняется только в config.json.

Пауза хранится на диске и переживает перезагрузку стенда: сбойная сборка сама не поднимется, а лог последнего сеанса уже лежит в архиве. Исключение — галочка «Запускать мониторинг при старте Watchdog»: с ней мониторинг после перезагрузки включается и счёт начинается заново. Снимается пауза только вручную: кнопкой «Возобновить» в окне или из меню в трее. Подробнее — в разделе про мониторинг.

Как узнать, почему приложение упало?

Лог приложения за каждый сеанс сохраняется в архив с причиной завершения и кодом возврата: штатное завершение, сбой, перезапуск watchdog, ручное завершение или «неизвестно». Нужный файл отправляется письмом разработчику прямо из окна — с версией Watchdog, именем устройства и временем.

А если сам Watchdog закроется или машину перезагрузят?

Watchdog запускается вместе с Windows и может сразу включать мониторинг, даже если перед выключением он стоял на паузе. Второй экземпляр из той же папки не запускается — открывается окно уже работающего. Пауза «Петля рестартов» тоже сохраняется на диске: без галочки «Запускать мониторинг при старте Watchdog» сбойная сборка после перезагрузки сама не поднимется, с ней — мониторинг включится и счёт перезапусков начнётся заново.

Нужны ли права администратора и работает ли без входа пользователя?

Для установки достаточно скопировать файл в папку. Watchdog — не служба: он работает в сеансе пользователя, поэтому на стенде настраивают автоматический вход в Windows. Если наблюдаемое приложение запущено с повышенными правами, а Watchdog — нет, проверки отклика и зависания по процессору пропускаются.

Это тот самый watchdog, который плата в USB? Он перезагрузит зависшую Windows?

Нет. Аппаратный сторожевой таймер — это устройство, которое перезагружает компьютер, когда перестаёт получать сигнал. Uniday Watchdog — программа: она перезапускает приложение внутри работающей Windows. Если зависла сама операционная система, нужен именно аппаратный таймер.

Подойдёт ли для Unreal, браузера в режиме киоска, произвольного exe?

Да, подойдёт любое приложение с окном. Тип сборки влияет только на автоматический поиск лога. Если исполняемый файл — лаунчер, который порождает процесс с другим именем, имя процесса указывается вручную в настройках.

Остальные вопросы — в справочнике по Watchdog.

© UNIDAY, 2014-2025

ООО «Юнидэй»
г. Саратов, ул. Бахметьевская 44/64, оф. 72
ИНН: 6454142737
КПП: 645401001
ОКВЭД: 62.01 Разработка компьютерного программного обеспечения.
Код вида деятельности: 22.01