status=232/ADDRESS_FAMILIES в systemd
Код 232 относится к параметру RestrictAddressFamilies=, который ограничивает семейства сокетов, доступные службе. Отказ означает, что фильтр не установился: либо в списке неизвестное имя, либо механизм недоступен в этом окружении.
Вероятные причины
По порядку: сверху то, что встречается чаще.
-
Неизвестное имя семейства адресов
Допустимы имена вида AF_UNIX, AF_INET, AF_INET6, AF_NETLINK. Сокращения
INETили произвольные строки не разбираются. -
Ограничение недоступно в этом окружении
Параметр работает через seccomp. Если фильтрация системных вызовов недоступна, ограничение применить нельзя.
-
Ограничение противоречит работе службы
Если в списке нет семейства, которое служба использует, она либо не сможет открыть сокет, либо упадёт по сигналу уже в работе. Это не даёт кода 232, но часто идёт рядом при подборе списка.
Диагностика
Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.
Показывает шаг ADDRESS_FAMILIES и причину.
journalctl -xeu myapp.service --no-pager -n 20Оба параметра работают через seccomp и влияют друг на друга.
systemctl show myapp.service -p RestrictAddressFamilies -p SystemCallFilterРешение
Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.
- Почему происходит
- Допустимы имена вида AF_UNIX, AF_INET, AF_INET6, AF_NETLINK. Сокращения
INETили произвольные строки не разбираются.
- Как проверить
-
Посмотрите действующее значение.
systemctl show myapp.service -p RestrictAddressFamilies
- Как исправить
-
Исправьте имена на полные, с префиксом AF_.
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
- Почему происходит
- Параметр работает через seccomp. Если фильтрация системных вызовов недоступна, ограничение применить нельзя.
- Как проверить
-
Проверьте окружение и поддержку seccomp.
systemd-detect-virt grep -i seccomp /boot/config-$(uname -r) 2>/dev/null
- Как исправить
- Уберите параметр там, где seccomp недоступен.
- Почему происходит
- Если в списке нет семейства, которое служба использует, она либо не сможет открыть сокет, либо упадёт по сигналу уже в работе. Это не даёт кода 232, но часто идёт рядом при подборе списка.
- Как проверить
-
Посмотрите, какие сокеты открывает служба, когда ограничение снято.
sudo ss -apn | grep myapp
- Как исправить
- Дополните список нужными семействами. AF_UNIX требуется почти всегда — через него идёт обращение к журналу и к D-Bus.
Пример вывода
В списке семейств указано сокращённое имя. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.
× myapp.service - My application
Active: failed (Result: exit-code) since Mon 2026-09-14 23:18:03 MSK; 1s ago
Process: 24400 ExecStart=/usr/local/bin/myapp (code=exited, status=232/ADDRESS_FAMILIES)
systemd[24400]: myapp.service: Failed at step ADDRESS_FAMILIES spawning /usr/local/bin/myapp: Invalid argument
Связанные ошибки
- status=228/SECCOMP в systemd Код 228/SECCOMP: не удалось применить фильтр системных вызовов из SystemCallFilter=. Причины: неизвестное имя вызова, отсутствие поддержки в ядре.
- status=225/NETWORK в systemd Код 225/NETWORK: не удалось создать сетевое пространство имён для службы при PrivateNetwork=yes или NetworkNamespacePath=.
- signal=SYS (status=31/SYS) в systemd Процесс службы убит сигналом SYS: фильтр системных вызовов запретил вызов. Как найти запрещённый вызов и исправить SystemCallFilter.
- Protocol not supported при создании сокета Ошибка 93: семейство или протокол не поддержаны. Разбор для IPv6, ограничений изоляции и контейнеров.
- openvpn: Cannot open TUN/TAP dev /dev/net/tun Служба не может открыть устройство туннеля: нет модуля, нет устройства в контейнере или мешает изоляция unit-файла.
- Address already in use при запуске службы Порт или адрес уже занят: bind() failed (98: Address already in use). Как найти владельца порта и что делать с остатками прежнего процесса.
- Automount: каталог монтируется не вовремя или отваливается Автомонтирование через .automount: как работает TimeoutIdleSec, почему ресурс отваливается и когда лучше обычный .mount.
- Broken pipe в журнале службы Запись в закрытый канал или соединение: клиент отключился, обработчик завершился, конвейер разорван.
Источники
-
systemd.exec(5)
232 EXIT_ADDRESS_FAMILIES: не удалось ограничить семейства адресов, см. RestrictAddressFamilies=. -
Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
Воспроизведено со значением RestrictAddressFamilies=INET.