status=237/KEYRING в systemd
Код 237/KEYRING значит, что systemd не смог создать для службы отдельную связку ключей ядра. Она нужна механизму учётных данных и части программ, работающих с ключами. Причины — квоты ядра или ограничения контейнера.
Вероятные причины
По порядку: сверху то, что встречается чаще.
-
Исчерпана квота на связки ключей
У ядра есть пределы на число ключей и байтов у пользователя. При множестве служб от одного пользователя квота заканчивается, и новую связку создать нельзя.
-
Окружение не позволяет создавать связки ключей
В части контейнеров работа со связками ключей ядра запрещена, и шаг не проходит независимо от квот.
-
Указан
KeyringMode=, несовместимый с задачейПри
KeyringMode=sharedсвязка общая для всех служб пользователя, приprivate— отдельная. Смена режима меняет и поведение квот.
Диагностика
Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.
Показывает шаг KEYRING и причину.
journalctl -xeu myapp.service --no-pager -n 20Текущее использование связок ключей по пользователям — сразу видно упор в квоту.
sudo cat /proc/key-usersРешение
Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.
- Почему происходит
- У ядра есть пределы на число ключей и байтов у пользователя. При множестве служб от одного пользователя квота заканчивается, и новую связку создать нельзя.
- Как проверить
-
Посмотрите действующие пределы.
cat /proc/sys/kernel/keys/maxkeys /proc/sys/kernel/keys/maxbytes sudo cat /proc/key-users
- Как исправить
-
Поднимите пределы через sysctl, например
kernel.keys.maxkeys=2000, и закрепите это в /etc/sysctl.d.sudo sysctl -w kernel.keys.maxkeys=2000
- Почему происходит
- В части контейнеров работа со связками ключей ядра запрещена, и шаг не проходит независимо от квот.
- Как проверить
-
Определите окружение.
systemd-detect-virt journalctl -xeu myapp.service -n 20 --no-pager
- Как исправить
- Запускайте службу вне такого контейнера либо разрешите работу с ключами в его настройках.
KeyringMode=, несовместимый с задачей- Почему происходит
- При
KeyringMode=sharedсвязка общая для всех служб пользователя, приprivate— отдельная. Смена режима меняет и поведение квот.
- Как проверить
-
Посмотрите значение параметра.
systemctl show myapp.service -p KeyringMode
- Как исправить
-
Оставьте значение по умолчанию (
privateдля системных служб), если нет явной причины его менять.
Пример вывода
Квота ядра на ключи исчерпана. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.
× myapp.service - My application
Active: failed (Result: exit-code) since Mon 2026-09-15 09:02:33 MSK; 1s ago
Process: 4200 ExecStart=/usr/local/bin/myapp (code=exited, status=237/KEYRING)
systemd[4200]: myapp.service: Failed at step KEYRING spawning /usr/local/bin/myapp: Disk quota exceeded
Связанные ошибки
- status=243/CREDENTIALS в systemd Код 243/CREDENTIALS: не удалось подготовить учётные данные службы из LoadCredential=, SetCredential= или ImportCredential=.
- status=219/CGROUP в systemd Код 219/CGROUP: не удалось создать или настроить контрольную группу службы. Причины на уровне системы и контейнеров.
- Failed to connect to bus: подключение к шине недоступно Команды systemctl не работают: нет подключения к шине. Разбор для контейнеров, сеансов по ssh и служб пользователя.
- Function not implemented в контейнере Ошибка 38 при системном вызове: вызов запрещён фильтром или отсутствует в окружении. Разбор для контейнеров.
- status=225/NETWORK в systemd Код 225/NETWORK: не удалось создать сетевое пространство имён для службы при PrivateNetwork=yes или NetworkNamespacePath=.
- В журнале контейнера видны записи хоста Журнал внутри контейнера показывает не то, что ожидалось: каталог журнала хоста проброшен внутрь.
- Журналы контейнеров заполнили диск Место кончилось из-за журналов контейнеров: ограничение размера не задано, ротации нет.
- Контейнеры не запускаются: среда выполнения не найдена Служба контейнеров работает, а запуск контейнера отказывает: нет исполняемого файла среды выполнения в пути службы.
Источники
-
systemd.exec(5)
237 EXIT_KEYRING: не удалось подготовить связку ключей ядра. -
Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
Воспроизведено при заниженном kernel.keys.maxkeys.