Перейти к содержанию
100% локально

генератор файлов systemd

Создайте правильный файл systemd .service, .timer, .socket или .mount из нескольких полей.

Выходные данные

генератор файлов systemd

Не нужно вставлять файл конфигурации — просто заполните несколько полей и этот инструмент создает полный файл юнита systemd, который вы можете поместить прямо в /etc/systemd/system/. Он охватывает четыре типа юнитов, которые администраторы systemd пишут вручную чаще всего: service, timer, socket и mount, и создает разделы [Unit], [Service] и [Install] с директивами в порядке, ожидаемом systemd.

Для юнита сервиса установите описание и URL документации, команду ExecStart (с необязательными крючками ExecStartPre и ExecStop), тип сервиса (simple, exec, forking, oneshot или notify), пользователя и группу для запуска, рабочую директорию и переменные окружения встроенно или через EnvironmentFile. Политика перезагрузки и RestartSec контролируют, как systemd реагирует на смерть процесса; After и Requires настраивают упорядочение зависимостей, а WantedBy устанавливает, какая цель вводит юнит при загрузке. Блок защиты добавляет NoNewPrivileges, PrivateTmp, ProtectSystem и ProtectHome одним щелчком каждый, что составляет большую часть того, что используют собственные файлы сервисов дистрибьютива для изоляции.

Выбор timer, socket или mount по-прежнему заполняет общие разделы [Unit] и [Install], но оставляет блок, специфичный для типа, в виде комментария, а не угадывает синтаксис OnCalendar=, ListenStream= или What=/Where=, который он не может проверить — см. конвертер cron в таймер systemd для готового графика. Имя юнита очищается от символов, которые systemd не допускает, а инструмент предупреждает вместо зависания, если поле вставлено абсурдно большого размера.

Все работает локально в вашем браузере: ничего из того, что вы вводите, включая имена хостов, пути или учетные данные в EnvironmentFile, никогда не отправляется куда-либо. Скопируйте результат, загрузите его как файл .txt для переименования и установки самостоятельно или отправьте его другому инструменту для продолжения редактирования.

FAQ

Куда поместить созданный файл?
Сохраните его как /etc/systemd/system/<name>.service (или .timer/.socket/.mount), затем запустите systemctl daemon-reload, за которым следует systemctl enable --now <name>.
Почему выбор «timer» или «socket» оставляет часть файла в виде комментария?
Эти типы юнитов используют директивы, которые этот генератор не создает для вас — OnCalendar= для таймера, ListenStream= для сокета, What=/Where= для монтирования. Добавьте их там, где указывает комментарий, вместо копирования угаданного синтаксиса.
Что именно делает блок защиты?
NoNewPrivileges блокирует эскалацию привилегий, PrivateTmp дает сервису его собственный /tmp, а ProtectSystem/ProtectHome делают большую часть файловой системы доступной только для чтения или недоступной для нее. Вместе они соответствуют изоляции, которую уже используют многие доставляемые дистрибьютивом файлы сервисов.
Могу ли я создать юнит для нескольких переменных окружения одновременно?
Да. Перечислите их через запятую или новую строку как пары KEY=VALUE в поле переменных окружения; каждая становится своей строкой Environment=, и неправильно отформатированные записи пропускаются, а не разбивают файл.
Что-нибудь, что я вводу, отправляется на сервер?
Нет. Файл юнита создается полностью в вашем браузере — включая любые пути, имена хостов или значения окружения, которые вы вводите — и ничего не загружается.