SystemdDoctor
Sockets= [Service]

Sockets=: связь службы с сокетами

Перечисляет сокет-unit, дескрипторы которых передаются этой службе. Нужен, когда имена службы и сокета не совпадают.

Что делает

По умолчанию служба получает дескрипторы от сокета с тем же именем. Параметр нужен в двух случаях: имена разные, или служба получает дескрипторы от нескольких сокетов сразу.

Связь можно объявить с любой стороны: Sockets= в службе или Service= в сокете. Достаточно одного, но объявлять полезно явно — так unit-файл читается однозначно.

Где ставится. В секции [Service].

Значения

ЗначениеЧто происходит
Sockets=myapp.socketодин сокет с другим именем.
Sockets=http.socket https.socketнесколько сокетов: служба получит дескрипторы от обоих.

Пример

Служба с двумя сокетами.

[Service]
Sockets=http.socket https.socket
ExecStart=/usr/local/bin/web --systemd-sockets

Дескрипторы придут по порядку объявления сокетов. Различать их удобнее по именам через FileDescriptorName=.

Типичные ошибки

Служба должна уметь принимать готовые дескрипторы: иначе связь бесполезна.

Порядок дескрипторов зависит от порядка сокетов — полагаться на него хрупко, лучше использовать имена.

Связанные ошибки

Рядом стоящие параметры

Где важен на практике

Источники

  • systemd.service(5) официальная документация
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04) собственная проверка
    сверено 15 сентября 2026