SystemdDoctor
служба не работает сокеты перезапуск

Сокет отключён: сработало ограничение частоты активаций

Если служба, вызываемая сокетом, падает сразу после запуска, соединения продолжают её вызывать, и получается цикл. systemd защищается ограничением частоты активаций и отключает сокет целиком.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Служба падает при запуске

    Каждое новое соединение вызывает её снова. Цикл упирается в ограничение частоты за секунды.

  2. Ограничение слишком строгое для нагрузки

    При режиме по соединению каждое подключение — это активация. На нагруженной службе значение по умолчанию может срабатывать без всякой поломки.

Диагностика

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

Сообщение об ограничении частоты активаций.

journalctl -u myapp.socket -n 30 --no-pager

Действующие пределы и режим работы сокета.

systemctl show myapp.socket -p TriggerLimitIntervalSec -p TriggerLimitBurst -p Accept

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Служба падает при запуске
Почему происходит
Каждое новое соединение вызывает её снова. Цикл упирается в ограничение частоты за секунды.
Как проверить
Посмотрите состояние службы и её журнал.
systemctl status myapp.service --no-pager | head -10
journalctl -u myapp.service -n 30 --no-pager
Как исправить
Исправьте причину падения службы, затем перезапустите сокет. Ограничение частоты тут лишь защита, а не проблема.
sudo systemctl restart myapp.socket
2. Ограничение слишком строгое для нагрузки
Почему происходит
При режиме по соединению каждое подключение — это активация. На нагруженной службе значение по умолчанию может срабатывать без всякой поломки.
Как проверить
Посмотрите значения ограничения.
systemctl show myapp.socket -p TriggerLimitIntervalSec -p TriggerLimitBurst
Как исправить
Поднимите предел активаций или перейдите на Accept=no, чтобы служба обслуживала соединения сама.

Пример вывода

Сокет отключён из-за цикла активаций. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

systemd[1]: myapp.socket: Trigger limit hit, refusing further activation.
systemd[1]: myapp.socket: Failed with result 'trigger-limit-hit'.
systemd[1]: myapp.service: Main process exited, code=exited, status=1/FAILURE

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

Источники

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