Файлы и службы

/usr/local/bin/pss

Исполняемый файл.

/opt/pss/config/pss.properties

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

/opt/pss/config/pss.json

Основной файл настроек. Создаётся и обновляется автоматически. При старте сервис пытается загрузить именно его.

/opt/pss/config/pss_back.json

Резервная копия предыдущей рабочей конфигурации. Сохраняется автоматически при действии Восстановить настройки в веб-интерфейсе и используется как первый запасной вариант, если основной pss.json не удалось разобрать.

/opt/pss/config/pss_default.json

Файл настроек по умолчанию. Поставляется вместе с пакетом и применяется как последний запасной вариант, если ни основной pss.json, ни pss_back.json не удалось загрузить. Из него же создаётся рабочий pss.json при самом первом запуске: файл задаёт порт веб-интерфейса 8808 и учётную запись admin / admin.

/opt/pss/config/bad/

Архив повреждённых файлов pss.json. Если при старте основной файл настроек не удалось разобрать, он перемещается сюда с именем вида pss_YYYYMMDD_HHMMSS.json. Каталог создаётся автоматически. Подробнее см. раздел Поведение при старте и ошибках конфигурации.

/opt/pss/data

Папка размещения данных. Создаётся и обновляется автоматически. Может быть изменена в файле глобальных настроек.

/usr/lib/systemd/system/pss.service

systemd-файл службы.

/var/log/pss

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

Имя службы — pss. Запускается от пользователя pss.

В процессе установки ставится сопутствующий пакет aksusbd от системы защиты; он включает службы hasplmd и aksusbd.

Поведение при старте и ошибках конфигурации

При запуске сервис последовательно пытается загрузить файлы настроек из папки /opt/pss/config:

  1. pss.json — основной файл настроек.

  2. pss_back.json — резервная копия предыдущей рабочей конфигурации.

  3. pss_default.json — настройки по умолчанию, поставляемые вместе с пакетом.

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

Структурно повреждённый файл настроек. Если pss.json содержит синтаксическую ошибку JSON, неизвестные ключи, неверный тип значения или нарушение уникальности (например, два потока с одинаковым id), сервис помещает повреждённый файл в архив /opt/pss/config/bad/ с именем pss_YYYYMMDD_HHMMSS.json (дата и время старта). После этого сервис продолжает попытки загрузки в обычном порядке и пересохраняет рабочую конфигурацию в pss.json из pss_back.json или pss_default.json. Подробности (имя ключа, описание ошибки, имя файла в архиве) записываются в журнал работы.

В архив попадает только основной pss.json. Файлы pss_back.json и pss_default.json при повреждении не архивируются — записей в журнале достаточно для диагностики, а сами файлы остаются на месте и могут быть исправлены вручную.

Если в момент следующей загрузки в /opt/pss/config/bad/ уже существует файл с той же меткой времени (например, при быстрых перезапусках в одну и ту же секунду), он перезаписывается.

Числовые значения за пределами допустимого диапазона. Если в файле настроек встречается числовое значение меньше минимально допустимого или больше максимально допустимого для этого параметра, сервис не отбрасывает файл целиком. Вместо этого в журнал записывается предупреждение с указанием имени параметра, прочитанного значения и применённой границы, а само значение приводится к ближайшей допустимой границе диапазона (минимуму или максимуму). После завершения загрузки сервис автоматически пересохраняет pss.json с уже скорректированными значениями, поэтому при повторном запуске эти предупреждения уже не появляются.

Такое поведение применяется только при первоначальной загрузке файла настроек. При изменении настроек через веб-интерфейс или внешний API значения вне допустимого диапазона по-прежнему отклоняются с ошибкой — без автоматической коррекции.