Директивы
Полный перечень директив systemd unit-файлов по секциям.
Секция [Unit]
Общие директивы для всех типов юнитов.
Мета-информация
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
Description= | Краткое описание юнита для отображения в UI и логах | Строка | Не влияет | Указывайте осмысленное название. Используется в systemctl status |
Documentation= | Ссылки на документацию через пробел | URI: http://, https://, file:, info:, man: | Не влияет | Указывайте man: ссылки для быстрого доступа к документации |
Зависимости (требования)
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
Wants= | Слабая зависимость: запустит указанные юниты, но не остановит текущий при их сбое | Список имён юнитов | Низкий риск | Рекомендуется вместо Requires= для устойчивости системы |
Requires= | Сильная зависимость: остановит текущий юнит если зависимость упала с After= | Список имён юнитов | Средний — может вызвать каскадную остановку | Используйте когда зависимость критична |
Requisite= | Требует чтобы зависимость уже была запущена, иначе отказ запуска | Список имён юнитов | Средний | Комбинируйте с After= для корректного порядка |
BindsTo= | Самая сильная зависимость: останавливает юнит при падении или остановке зависимости | Список имён юнитов | Высокий — каскадная остановка | Используйте с After= только для тесно связанных сервисов |
PartOf= | Останавливает/перезапускает текущий юнит при остановке/перезапуске указанного | Список имён юнитов | Средний — односторонняя зависимость | Удобно для группировки сервисов |
Upholds= | Непрерывно поддерживает указанные юниты активными | Список имён юнитов | Низкий | Альтернатива Restart= для поддержания сервиса в работе |
Conflicts= | Негативная зависимость: запуск одного останавливает другой | Список имён юнитов | Высокий — конфликт может привести к остановке сервисов | Используйте для взаимоисключающих сервисов (iptables/nftables) |
Порядок запуска
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
After= | Запускать текущий юнит после указанных (не создаёт зависимость) | Список имён юнитов | Не влияет | Всегда указывайте вместе с Requires=/Wants= |
Before= | Запускать текущий юнит до указанных (не создаёт зависимость) | Список имён юнитов | Не влияет | Используйте для сервисов, которые должны стартовать раньше |
Управление изоляцией и отключением
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
DefaultDependencies= | Включает/выключает зависимости по умолчанию для типа юнита | yes (по умолчанию), no | no отключает автоматические зависимости на shutdown | Оставляйте yes除非 вы точно знаете что делаете |
IgnoreOnIsolate= | Не останавливать юнит при изоляции (например, isolate multi-user.target) | true, false | true может оставить нежелательные сервисы | Используйте для essential сервисов (dbus, journald) |
StopWhenUnneeded= | Остановить юнит когда он больше не нужен | true, false | Не влияет显著но | Полезно для mount/automount юнитов |
RefuseManualStart= | Запретить ручной запуск юнита | true, false | Повышает безопасность — предотвращает случайный запуск | Используйте для зависимых сервисов |
RefuseManualStop= | Запретить ручную остановку юнита | true, false | Повышает безопасность — предотвращает случайную остановку critical сервисов | Используйте для критичных сервисов |
Обработка ошибок
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
OnFailure= | Запустить указанный юнит при ошибке текущего | Имя юнита | Позволяет автоматическое восстановление | Используйте для алертинга и автоматического ремонта |
OnFailureJobMode= | Режим очереди задач при OnFailure | fail, replace, replace-irreversibly, isolating, flush, triggering, dependency | replace-irreversibly не может быть отменён | fail по умолчанию, replace для замены текущих задач |
OnSuccess= | Запустить указанный юнит при успешном завершении | Имя юнита | Не влияет显著но | Полезно для цепочек задач |
OnSuccessJobMode= | Режим очереди задач при OnSuccess | Аналогично OnFailureJobMode= | Аналогично | Аналогично |
Действия при успешном/неуспешном завершении
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
SuccessAction= | Действие при успешном завершении | none, reboot, reboot-force, reboot-immediate, poweroff, poweroff-force, poweroff-immediate, halt, halt-force, halt-immediate, kexec, exit, exit-force | reboot-immediate/poweroff-immediate могут привести к потере данных | none по умолчанию. Используйте reboot только при необходимости |
SuccessActionExitStatus= | Код выхода для SuccessAction=exit | Число или диапазон (например 0, 0..255) | Не влияет显著но | Указывайте при использовании exit |
FailureAction= | Действие при неуспешном завершении | Аналогично SuccessAction= | Аналогично — force варианты опасны | none по умолчанию. Используйте осторожно |
FailureActionExitStatus= | Код выхода для FailureAction=exit | Число или диапазон | Не влияет显著но | Указывайте при использовании exit |
Таймауты
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
JobTimeoutSec= | Таймаут ожидания выполнения задачи | Секунды, infinity, time span (например 5min 20s) | Бесконечный таймаут может заблокировать систему | Значение по умолчанию разумное, увеличивайте только при необходимости |
JobRunningTimeoutSec= | Таймаут для уже запущенной задачи | Аналогично JobTimeoutSec= | Аналогично | Используйте для защиты от зависших операций |
JobTimeoutAction= | Действие при таймауте задачи | Аналогично FailureAction= | Аналогично | none по умолчанию |
JobTimeoutRebootArgument= | Аргумент перезагрузки при таймауте | Строка | Не влияет显著но | Указывайте только с reboot/kexec действиями |
Управление сборкой мусора и автозагрузкой
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
CollectMode= | Режим сборки мусора для завершённых юнитов | inactive (по умолчанию), inactive-or-failed, inactive-or-encountered-error, force | force удаляет юниты из памяти независимо от состояния | inactive безопасен по умолчанию |
Таймауты запуска
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
DefaultStartLimitBurst= | Количество допустимых перезапусков за интервал | Целое число | Слишком частые перезапуски могут нагружать систему | Значение по умолчанию (10) адекватно для большинства случаев |
DefaultStartLimitIntervalSec= | Интервал для подсчёта перезапусков | Секунды, time span | Не влияет显著но | 10 секунд по умолчанию |
Пропагация перезагрузки/остановки
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
ReloadPropagatedFrom= | Перезагрузка от указанных юнитов | Список имён юнитов | Не влияет显著но | Используйте для группировки |
PropagatesReloadTo= | Перезагрузка указанных юнитов при перезагрузке текущего | Список имён юнитов | Каскадная перезагрузка может затронуть лишние сервисы | Используйте осторожно |
StopPropagatedFrom= | Остановка от указанных юнитов | Список имён юнитов | Каскадная остановка | Используйте осторожно |
PropagatesStopTo= | Остановка указанных юнитов при остановке текущего | Список имён юнитов | Каскадная остановка | Используйте осторожно |
Пространства имён
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
JoinsNamespaceOf= | Присоединиться к пространству имён указанного юнита | Список имён юнитов | Повышает изоляцию | Используйте для сервисов, которым нужна общая среда |
NetworkNamespacePath= | Путь к network namespace | Путь к файлу или inet: | Управление сетевой изоляцией | Используйте для контейнеров |
IPCNamespacePath= | Путь к IPC namespace | Путь к файлу | Управление IPC изоляцией | Используйте для контейнеров |
Personality= | Архитектура выполнения | ia32, x86-64, aarch64, mips64-le, ppc64-le, riscv64-le, s390x, sparc64 | Влияет на безопасность через эмуляцию архитектуры | Используйте для запуска 32-битных приложений на 64-битной системе |
Секция [Install]
Директивы, определяющие как юнит инсталлируется в систему.
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
WantedBy= | Создаёт симлинк в .wants/ директорию указанного юнита | Имя target-юнита | Не влияет显著но | Основной способ автоматического запуска сервисов |
RequiredBy= | Создаёт симлинк в .requires/ директорию указанного юнита | Имя target-юнита | Каскадная зависимость | Используйте только для критичных сервисов |
Also= | Дополнительные юниты для включения/отключения | Список имён юнитов | Не влияет显著но | Удобно для группировки связанных сервисов |
Alias= | Альтернативные имена для юнита | Список имён юнитов | Не влияет显著но | Используйте для удобства (например default.target) |
DefaultInstance= | Экземпляр по умолчанию для шаблонных юнитов | Строка | Не влияет显著но | Указывайте для шаблонных сервисов |
AllowIsolate= | Разрешить изоляцию этого target-юнита | true, false | true позволяет изолировать target | Включайте только для target-юнитов |
Секция [Service]
Директивы специфичные для сервисов.
Тип сервиса
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
Type= | Механизм уведомления systemd о запуске | simple — fork без ожидания execveexec — после успешного execve (по умолчанию)forking — классический fork (родитель завершается)oneshot — одноразовый с ожиданием завершенияdbus — после получения D-Bus имениnotify — после отправки READY=1 через sd_notifynotify-reload — как notify + обработка SIGHUPidle — задержка до завершения всех задач | simple может не обнаружить ошибки запуска | exec для долгоживущих сервисов. notify если сервис поддерживает sd_notify. oneshot для скриптов |
ExitType= | Когда считать сервис завершённым | main (по умолчанию) — при завершении main процессаcgroup — пока жив хотя бы один процесс в cgroup | cgroup не отслеживает main PID | main для стандартных сервисов. cgroup для графических приложений |
Управление процессами
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
ExecStart= | Команда запуска сервиса | Полный путь + аргументы. Префикс - игнорирует ошибки, !! — sandboxing override | Путь к бинарнику должен быть валидным | Обязательна для большинства сервисов. Не более одной команды (кроме oneshot) |
ExecStartPre= | Команды до ExecStart | Аналогично ExecStart= | Не запускайте долгие процессы | Используйте для инициализации, проверок |
ExecStartPost= | Команды после успешного ExecStart | Аналогично ExecStart= | Аналогично | Используйте для пост-инициализации |
ExecStop= | Команда остановки сервиса | Аналогично ExecStart= | Должна быть синхронной операцией | Используйте для graceful shutdown |
ExecStopPost= | Команды после остановки | Аналогично ExecStart= | Работает даже при аварийной остановке | Используйте для очистки |
ExecCondition= | Проверка условия перед запуском | Код 0 = продолжить, 1-254 = пропустить, 255 = ошибка | Не влияет显著но | Альтернатива Condition*= для сложных проверок |
ExecReload= | Команда перезагрузки конфигурации | Аналогично ExecStart= | Используйте $MAINPID для передачи сигнала | kill -HUP $MAINPID или командная альтернатива |
Перезапуск
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
Restart= | Условия автоматического перезапуска | no (по умолчанию), on-success, on-failure, on-abnormal, on-abort, always | Бесконечный перезапуск может замедлить загрузку | on-failure для критичных сервисов. always для essential демонов |
RestartSec= | Задержка перед перезапуском | Секунды, time span (по умолчанию 100ms) | Слишком малая задержка = нагрузка | 3-10 секунд для большинства сервисов |
RestartSteps= | Количество шагов экспоненциального увеличения | Целое число, 0 = отключено | Не влияет显著но | 3-5 для экспоненциального backoff |
RestartMaxDelaySec= | Максимальная задержка при экспоненциальном увеличении | Секунды, infinity | Не влияет显著но | Используйте с RestartSteps |
RestartRandomizedDelaySec= | Случайная добавочная задержка | Секунды, time span | Полезно против “thundering herd” | 1-5 секунд для распределения нагрузки |
RestartPreventExitStatus= | Коды выхода, запрещающие перезапуск | Список кодов или диапазонов | Позволяет “чистое” завершение | 0 для oneshot сервисов |
RestartForceExitStatus= | Коды выхода, принудительно запускающие перезапуск | Список кодов или диапазонов | Игнорирует Restart=no | Используйте когда特定ные коды означают необходимость перезапуска |
RestartMode= | Режим перезапуска | normal (по умолчанию), direct | direct — только замена процесса | normal безопаснее |
Таймауты
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
TimeoutStartSec= | Таймаут запуска | Секунды, infinity (по умолчанию 90s, infinity для oneshot) | Бесконечный таймаут может заблокировать загрузку | Увеличивайте только для медленно запускающихся сервисов |
TimeoutStopSec= | Таймаут остановки | Секунды, infinity (по умолчанию 90s) | SIGKILL после таймаута может привести к потере данных | Увеличивайте для сервисов с длительной очисткой |
TimeoutAbortSec= | Таймаут при abort (watchdog) | Секунды, infinity, пустая строка | Влияет на время записи core dump | Увеличивайте если нужен полный core dump |
TimeoutSec= | Шорткат для TimeoutStartSec + TimeoutStopSec | Аналогично | Аналогично | Удобно для единого таймаута |
TimeoutStartFailureMode= | Действие при таймауте запуска | terminate (по умолчанию), abort, kill | kill — принудительное завершение без graceful shutdown | terminate безопаснее. kill для критичных случаев |
TimeoutStopFailureMode= | Действие при таймауте остановки | terminate (по умолчанию), abort, kill | Аналогично | Аналогично |
RuntimeMaxSec= | Максимальное время жизни сервиса | Секунды, time span, infinity (по умолчанию) | Автоматическая остановка | Используйте для одноразовых задач |
RuntimeRandomizedExtraSec= | Дополнительное случайное время жизни | Секунды, time span | Рассеивает нагрузку при массовом запуске | Полезно для cron-like сервисов |
Работа с пользователей и группами
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
User= | Пользователь для запуска сервиса | Имя или UID | Сервис получает права пользователя | Запускайте от непривилегированных пользователей |
Group= | Группа для запуска сервиса | Имя или GID | Влияет на доступ к файлам | Задавайте отдельно от User при необходимости |
DynamicUser= | Динамическое создание пользователя | true, false | Повышает безопасность — ephemeral пользователь | Включайте для stateless сервисов |
SupplementaryGroups= | Дополнительные группы | Список имён или GID | Дополнительные привилегии | Минимальный набор необходимых групп |
Управление памятью и ресурсами
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
OOMPolicy= | Поведение при OOM | continue (по умолчанию), stop, kill, ignore | ignore предотвращает OOM-killer | continue по умолчанию, stop для критичных сервисов |
OOMScoreAdjust= | Корректировка OOM-оценки | -1000..1000 (по умолчанию 0) | Отрицательные значения = приоритет защиты | -1000 для защиты от OOM, +1000 для убийства первым |
Журнал и мониторинг
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
WatchdogSec= | Таймаут watchdog | Секунды, time span | Сервис必须 отправлять SD_WATCHDOG_USEC | Используйте для мониторинга зависших сервисов |
WatchdogSignal= | Сигнал при watchdog timeout | Сигнал (по умолчанию SIGABRT) | Влияет на обработку ошибок | Оставляйте SIGABRT по умолчанию |
NotifyAccess= | Доступ к сокету уведомлений | none, main (по умолчанию), all, main-exclusive | all разрешает любым процессам уведомления | main для стандартных сервисов |
NonBlocking= | Неблокирующий режим | true, false | Влияет на обработку stdin/stdout | false по умолчанию |
Переменные окружения
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
Environment= | Переменные окружения для сервиса | Список KEY=VALUE | Не храните секреты в unit-файлах | Используйте LoadCredential= для секретов |
EnvironmentFile= | Файл с переменными окружения | Путь к файлу (с префиксом - для опциональности) | Файл должен быть доступен сервису | Используйте для separation of concerns |
Управление файловыми дескрипторами
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
FileDescriptorStoreMax= | Максимальное количество FD в store | Число (по умолчанию 0) | Каждый FD消耗 память | Устанавливайте для socket-activated сервисов |
FileDescriptorStorePreserve= | Сохранять FD при остановке | no (по умолчанию), yes, restart | yes =_FD сохраняются при любом перезапуске | restart для socket-activated сервисов |
OpenFile= | Открытые файлы для сервиса | Список PATH:MODE | Контроль доступа к файлам | Используйте вместо ExecStartPre для открытия файлов |
Управление копиями и credentials
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
LoadCredential= | Загрузка credential | ID:PATH или ID@PATH | Креденшилы доступны только сервису | Используйте для secrets вместо Environment= |
RootDirectory= | Корневой каталог для сервиса | Путь | Полная изоляция файловой системы | Используйте для sandboxing |
RootDirectoryStartOnly= | RootDirectory только для ExecStart | true, false | Влияет на ExecStartPre/Post | true для полной изоляции |
RuntimeDirectory= | Каталоги в /run/ для сервиса | Список каталогов | Автоматическое создание/очистка | Удобно для PID-файлов, сокетов |
RefreshOnReload= | Перечитывать конфигурацию при reload | true, false | Не влияет显著но | Полезно для сервисов с внешней конфигурацией |
Kill-сигналы
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
KillMode= | Режим завершения процессов | control-group (по умолчанию) — все процессы в cgroupprocess — только main processmixed — main получает KillSignal, остальные SIGTERMnone — только ExecStop | process может оставить сиротские процессы | control-group safest. mixed для graceful shutdown |
KillSignal= | Сигнал для main процесса | Сигнал (по умолчанию SIGTERM) | SIGTERM = graceful, SIGKILL = принудительно | SIGTERM по умолчанию, SIGINT для интерактивных |
RestartKillSignal= | Сигнал при перезапуске | Сигнал (по умолчанию SIGTERM) | Аналогично | Используйте когда нужен другой сигнал при рестарте |
FinalKillSignal= | Финальный SIGKILL после TimeoutStopSec | Сигнал (по умолчанию SIGKILL) | SIGKILL не даёт процессу очиститься | Оставляйте SIGKILL по умолчанию |
cgroup и делегирование
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
Delegate= | Делегирование управления cgroup | true, false, или список контроллеров (cpu, io, memory, …) | Делегация снижает контроль systemd | true для container runtimes |
DevicePolicy= | Политика доступа к устройствам | auto (по умолчанию), closed, strict | closed блокирует все устройства кроме white-list | closed для enhanced security |
DeviceAllow= | Разрешённые устройства | Список PATH rwm | Управление доступом к /dev/ | Используйте с DevicePolicy=closed |
Сетевые ограничения
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
PrivateTmp= | Приватный /tmp и /var/tmp | true, false | Повышает безопасность — изолированная tmpfs | Включайте для большинства сервисов |
PrivateDevices= | Приватный набор устройств | true, false | Сервис не видит реальные устройства | Включайте для enhanced security |
PrivateIPC= | Приватный IPC namespace | true, false | Изоляция IPC | Включайте для изоляции |
PrivateNetwork= | Приватная сеть (без сетевого доступа) | true, false | Сервис не имеет сетевого доступа | Включайте для не нуждающихся в сети сервисов |
Лимит перезапусков
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
StartLimitBurst= | Количество перезапусков за интервал | Число (по умолчанию 5) | Защита от бесконечного перезапуска | 5-10 для большинства сервисов |
StartLimitIntervalSec= | Интервал подсчёта перезапусков | Секунды, time span (по умолчанию 10s) | Не влияет显著но | 10-30 секунд адекватно |
StartLimitAction= | Действие при превышении лимита перезапусков | none, fail, reboot, reboot-force, reboot-immediate, poweroff, poweroff-force, poweroff-immediate, halt, halt-force, halt-immediate, kexec, exit, exit-force | reboot-immediate может привести к потере данных | none по умолчанию. reboot для критичных систем |
SurviveFinalKillSignal= | Пережить финальный kill при shutdown | true, false | Сервис будет остановлен позже | true только для essential сервисов |
Произвольные переменные (пользовательские)
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
Environment= (service) | Переменные окружения | KEY=VALUE | Не храните секреты | Используйте LoadCredential= |
EnvironmentFile= | Файл переменных | Путь, - prefix для optional | Файл должен существовать для mandatory | - для optional файлов |
Секция [Socket]
Директивы для socket-activation.
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
ListenStream= | Прослушивание TCP/Unix-сокета | Путь к файлу, PORT, [::]:PORT | Контроль доступа через filesystem | Используйте для lazy-start сервисов |
ListenDatagram= | Прослушивание UDP сокета | Аналогично | Аналогично | Для UDP сервисов |
ListenSequentialPacket= | Прослушивание sequential packet (AF_UNIX) | Путь к файлу | Аналогично | Для D-Bus и подобных |
ListenFIFO= | Прослушивание именованной pipe | Путь к FIFO | Аналогично | Для legacy-совместимости |
ListenSpecial= | Прослушивание специального файла | Абсолютный путь | Доступ к /proc, /dev | Для character devices |
ListenNetlink= | Прослушивание Netlink сокета | Имя семейства (audit, kobject-uevent) | Ядерные события | Для мониторинга |
ListenMessageQueue= | Прослушивание POSIX message queue | Имя очереди (начинается с /) | IPC изоляция | Для legacy IPC |
ListenUSBFunction= | Прослушивание USB FunctionFS | Путь к FunctionFS mount point | USB gadget | Для USB-устройств |
SocketProtocol= | Протокол сокета | udplite, sctp, mptcp | Сетевая безопасность | udplite для повреждённых пакетов |
BindIPv6Only= | Только IPv6 | default, both, ipv6-only | Сетевая безопасность | ipv6-only для IPv6-only |
Backlog= | Очередь входящих соединений | Число (по умолчанию 4294967295) | DoS защита | Ограничение при высокой нагрузке |
BindToDevice= | Привязка к сетевому интерфейсу | Имя интерфейса | Изоляция сети | Для изоляции сервисов |
SocketUser= | Владелец сокета | Имя пользователя | Контроль доступа | По умолчанию root |
SocketGroup= | Группа сокета | Имя группы | Контроль доступа | По умолчанию root |
SocketMode= | Режим сокета | Восьмеричный режим (по умолчанию 0666) | Контроль доступа | 0666 для сокетов |
DirectoryMode= | Режим каталога | Восьмеричный режим (по умолчанию 0755) | Контроль доступа | 0755 для каталогов |
KeepAlive= | TCP Keep-Alive | true, false | Обнаружение мертвых соединений | true для долгоживущих соединений |
KeepAliveTimeSec= | Время до первого keepalive | Секунды (по умолчанию 7200) | Энергопотребление | 7200s по умолчанию |
KeepAliveIntervalSec= | Интервал keepalive | Секунды (по умолчанию 75) | Энергопотребление | 75s по умолчанию |
KeepAliveProbes= | Количество probes | Число (по умолчанию 9) | Чувствительность | 9 по умолчанию |
NoDelay= | Отключение алгоритма Нэйгла | true, false | Задержка vs Throughput | true для低延迟 |
Priority= | Приоритет трафика | Число | QoS | 0 по умолчанию |
DeferAcceptSec= | Отсрочка accept | Секунды | Энергосбережение | Для HTTP-серверов |
ReceiveBuffer= | Буфер приема | Размер (K, M, G) | Пропускная способность | 128K по умолчанию |
SendBuffer= | Буфер отправки | Размер (K, M, G) | Пропускная способность | 128K по умолчанию |
IPTOS= | IP Type of Service | low-delay, throughput, reliability, low-cost | QoS | Зависит от сервиса |
IPTTL= | IP Time To Live | Число | Сетевая безопасность | 64 по умолчанию |
Mark= | Метка пакетов | Число | Фильтрация iptables | 0 по умолчанию |
ReusePort= | Повторное использование порта | true, false | Балансировка нагрузки | true для multi-threaded |
FreeBind= | Привязка к несуществующему IP | true, false | Устойчивость | true для ранней загрузки |
Transparent= | Прозрачный прокси | true, false | Проксирование | false по умолчанию |
Broadcast= | Широковещательные пакеты | true, false | Сетевая безопасность | false по умолчанию |
PassCredentials= | Передача credentials | true, false | Безопасность | false по умолчанию |
PassPIDFD= | Передача pidfd | true, false | Безопасность | false по умолчанию |
PassSecurity= | Передача security context | true, false | Безопасность | false по умолчанию |
PassPacketInfo= | Передача packet info | true, false | Диагностика | false по умолчанию |
AcceptFileDescriptors= | Прием file descriptors | true, false | Безопасность | true по умолчанию |
Timestamping= | Временные метки | off, us, ns | Диагностика | off по умолчанию |
TCPCongestion= | Алгоритм контроля перегрузки | westwood, reno, cubic, lp | Пропускная способность | cubic по умолчанию |
RemoveOnStop= | Удаление при остановке | true, false | Чистота | false по умолчанию |
Symlinks= | Симлинки на сокет | Список путей | Удобство | Аналоги сокета |
FileDescriptorName= | Имя file descriptor | Строка | Идентификация | Автоматически по умолчанию |
TriggerLimitIntervalSec= | Интервал лимита срабатываний | Секунды (по умолчанию 2s) | DoS защита | 2s по умолчанию |
TriggerLimitBurst= | Количество срабатываний | Число | DoS защита | По умолчанию |
PollLimitIntervalSec= | Интервал poll лимита | Секунды | DoS защита | Для датаграмных сокетов |
PollLimitBurst= | Количество poll срабатываний | Число | DoS защита | Для датаграмных сокетов |
Секция [Timer]
Директивы для таймеров.
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
OnCalendar= | Запуск по календарному расписанию | Формат: DayOfWeek Year-Month-Day Hour:Minute:Second | Автоматический запуск задач | Используйте вместо cron |
OnBootSec= | Запуск через N секунд после загрузки | Секунды, time span | Не влияет显著но | Полезно для задач “после загрузки” |
OnStartupSec= | Запуск через N секунд после запуска PID 1 | Секунды, time span | Аналогично | Аналогично |
OnUnitActiveSec= | Запуск через N секунд после активации | Секунды, time span | Аналогично | Интервальные задачи |
OnUnitInactiveSec= | Запуск через N секунд после деактивации | Секунды, time span | Аналогично | Аналогично |
OnActiveSec= | Запуск через N секунд после активации таймера | Секунды, time span | Аналогично | Аналогично |
FixedRandomDelay= | Фиксированная случайная задержка | true, false | Стабильный сдвиг между запусками | true для стабильного расписания |
RandomizedOffsetSec= | Стабильный случайный сдвиг таймера | Секунды, time span | Распределение нагрузки между клиентами | Полезно для распределённых систем |
DeferReactivation= | Отложить повторную активацию до завершения задачи | true, false | Предотвращает наложение запусков | true для длительных задач |
OnClockChange= | Срабатывание при изменении часов | true, false | Автоматическая коррекция | Редко используется |
OnTimezoneChange= | Срабатывание при смене часового пояса | true, false | Аналогично | Редко используется |
AccuracySec= | Точность срабатывания | Секунды, time span (по умолчанию 1min) | Меньше = больше нагрузки | 1min адекватно для большинства задач |
RandomizedDelaySec= | Случайная задержка | Секунды, time span | Рассеивает нагрузку | 1-5 секунд для cron-задач |
Persistent= | Запуск пропущенных задач при следующей загрузке | true, false | Пропущенные задачи будут выполнены | true для важных задач |
WakeSystem= | Пробуждение системы | true, false | Влияет на энергопотребление | true только для задач требующих пробуждения |
RemainAfterElapse= | Сохранять таймер после срабатывания | true, false | Не влияет显著но | true по умолчанию |
Секция [Mount]
Директивы для точек монтирования.
| Директива | Описание | Значения | Безопасность | Рекомендации |
|---|---|---|---|---|
What= | Устройство или ресурс для монтирования | Путь к устройству, UUID, UUID=, LABEL= | Аналогично fstab | Обязательна |
Where= | Точка монтирования | Путь в файловой системе | Директория должна существовать | Обязательна |
Type= | Тип файловой системы | ext4, xfs, btrfs, nfs, tmpfs, … | Не все типы поддерживаются | Указывайте явно |
Options= | Параметры монтирования | Аналогично fstab options | nodev, nosuid, noexec для безопасности | Используйте safety options |
SloppyOptions= | Мягкий разбор опций | true, false | Игнорирует неизвестные опции | false по умолчанию |
LazyUnmount= | Ленивое размонтирование | true, false | Отсоединяет файловую систему сразу | Полезно для занятых файловых систем |
ReadWriteOnly= | Только чтение/запись | true, false | true — не пытаться монтировать read-only | false по умолчанию |
ForceUnmount= | Принудительное размонтирование | true, false | Принудительное отключение NFS | Используйте только при необходимости |
DirectoryMode= | Режим каталога точки монтирования | Восьмеричный режим (по умолчанию 0755) | Контроль доступа | 0755 по умолчанию |
TimeoutSec= | Таймаут операции монтирования | Секунды, time span | Аналогично TimeoutStartSec | 90s по умолчанию |
Секция [Target]
Директивы для targets (группировочных юнитов).
Targets не имеют собственных директивeyond тех, что определены в [Unit] и [Install]. Они используются как точки сборки для зависимостей.
Примеры targets:
multi-user.target— многопользовательский режим (без GUI)graphical.target— графический режимnetwork-online.target— сеть доступнаbasic.target— базовая инициализация завершена