SystemdDoctor

Проверка unit-файла systemd

Вставьте содержимое .service, .socket, .timer, .mount или .path. Проверка разбирает текст: секции, имена параметров, пути, значения, подстановки. Ошибки — это то, из-за чего systemd откажется загружать unit или не сможет запустить процесс; предупреждения — рабочие, но опасные настройки.

Словарь параметров Файл не сохраняется и не запускается. Проверка только читает текст. Подробнее

Что проверяется

  • Синтаксис: секции, строки без знака равенства, параметры до первой секции, регистр в именах секций и параметров.
  • Обязательное для типа unit: ExecStart= для службы, Listen…= для сокета, условие срабатывания для таймера, What= и Where= для монтирования.
  • Параметр не в своей секции — например WantedBy= в [Unit] вместо [Install].
  • Команда запуска: относительный путь, синтаксис оболочки, подстановки имён файлов, уход в фон.
  • Значения: Type=, Restart=, KillMode=, промежутки времени, ограничения, StandardOutput=.
  • Опечатки в именах директив — по близости к известным именам.

Чего проверка не делает

  • Не запускает и не создаёт unit, не обращается к systemd на этом сервере.
  • Не знает, существуют ли на вашей машине указанные файлы, каталоги и пользователи. Об этом честно сказано в замечаниях.
  • Не судит за отсутствие Restart= как за ошибку: это допустимая конфигурация, а совет зависит от типа службы.

Полную проверку на самой машине делает systemd-analyze verify /путь/к/unit — она видит окружение и зависимости.