Почему шкаф иногда перезагружается сам
Короткий ответ: так и задумано. Это не поломка и не сбой питания.
Что происходит
Внутри платы, кроме основного компьютера, сидит маленькая отдельная микросхема-надзиратель. У неё есть часы обратного отсчёта. Пока программа постамата жива, она регулярно говорит надзирателю «я жив», и отсчёт начинается заново. Если такого сигнала долго нет, надзиратель считает, что программа зависла, и перезагружает плату — сам, не спрашивая никого.
Это как кнопка бодрствования у машиниста: не нажал вовремя — поезд тормозит сам.
Срок — около пяти минут.
Зачем это нужно
Постамат стоит на улице без присмотра и выдаёт людям вещи. Если программа зависнет, единственный способ её оживить — прислать человека на другой конец города. Надзиратель делает это сам, бесплатно и мгновенно: завис — перезагрузился — снова р аботает.
То есть это страховка, которая экономит вам поездки, а не источник проблем.
Это проверено, а не обещано
Страховку легко записать в документ и никогда не проверить. Здесь проверили обе стороны, на живой плате:
- пока программа подавала признаки жизни, шкаф проработал больше тринадцати минут подряд без единой перезагрузки;
- как только признаки жизни прекратились, шкаф перезагрузился через 4 минуты 41 секунду и поднялся сам, без человека.
Вторая половина важнее первой. Работающий шкаф выглядит одинаково и когда надзиратель исправен, и когда он сломан, — разница видна только в тот момент, когда программа зависла. Поэтому проверяли именно это.
⚠️ Здесь стоял оговор «сигналы „я жив“ подавала служебная программа, а не сам киоск». Он устарел 3 сентября. Теперь признаки жизни подаёт именно киоск, и проверялось это не «пе резагрузок нет» — так выглядит и шкаф, которого кормят вслепую, — а причиной кормления в журнале: «кормим: обмен с платой свежий». То есть надзирателя успокаивает настоящий разговор с платой замков, а не то, что программа просто существует.
Пилотный шкаф после этого проработал больше семи часов без единой перезагрузки.
Что это значит для вас на практике
Увидев «шкаф не отвечает» — подождите 5–7 минут. Очень часто он вернётся сам, и ехать никуда не придётся. Это первое действие по тревоге «шкаф офлайн».
Не ищите причину в логах. Перезагрузка аппаратная: программа о ней не знает и записать ничего не успевает. Записи просто обрываются на полуслове. Пустой журнал в этом месте не значит «всё было хорошо» — он не значит вообще ничего.
Одиночная перезагрузка — это нормально. Например, после обновления или после кратковременной не поладки. Клиент в этот момент увидит, что экран погас и снова загрузился.
Перезапустить киоск можно и самому — из панели, не дожидаясь надзирателя. Кнопка живёт в разделе «Обновления», в строке нужного шкафа («Перезапустить киоск»), и доступна дежурному. Она ставит команду в очередь, шкаф забирает её на очередном сеансе связи и отчитывается о выполнении. Это перезапуск ПРОГРАММЫ, а не плату целиком, и просит он второй фактор — как и удалённое открытие. ⚠️ До 4 сентября этой кнопки не было, хотя текст тревоги про застрявшее обновление прямо велел её нажать.
⚠️ Две вещи про эту команду, которых не видно на кнопке. Первая: срок годности — пятнадцать минут; шкаф, вернувшийся на связь позже, перезапуск уже не получит (иначе экран погас бы в чужой момент, когда у дверцы стоит человек). Вторая: повторно она сама не выдаётся. Выдали один раз, отчёта не пришло — сервер вторую попытку не делает и пишет об этом в примечании; второй перезапуск подряд означал бы цикл перезапусков. Значит «нажал и жду» тут не работает: смотрите отчёт, и если его нет — отправляйте заново.
🔴 И третья, если перед этим вы нажимали «Откатить» в разделе «Обновления»: откат
применяется со ВТОРОГО перезапуска киоска. Первый перезапуск только забирает
распоряжение — киоск запускает уже скачанное сразу, а за новостями идёт следом. Поэтому
после отката экран шкафа один раз выглядит так, будто ничего не произошло: это нормально,
перезапустите киоск ещё раз (или дождитесь следующего перезапуска) и смотрите после него.
Проверено на живом железе в ночь на 7 сентября — до этого кнопку отката на шкафу
не нажимали ни разу.
⚠️ И вторая половина того же: вернуть шкаф на прежнее обновление простым назначением
нельзя. Шкаф откажется, в отчёте будет стоять updateRejectedBySelectionPolicy — он
принимает только версию новее запущенной, а откат считается самой свежей. Это не поломка
и не ваша ошибка: нужен перевыпуск той же версии разработчиком. Своими силами из панели
это не лечится, поэтому эскалируйте, а не жмите кнопку повторно.