Служба systemd описана с устаревшим и небезопасным KillMode=none
Предупреждение systemd «Unit uses KillMode=none. This is unsafe, as it disables systemd's process lifecycle management for the service»: при остановке службы её процессы остаются жить. Как найти такие юниты и чем заменить.
Что это значит
KillMode говорит systemd, какие процессы завершать при остановке службы. При KillMode=none systemd не трогает процессы вовсе: служба считается остановленной, а её процессы продолжают работать. Перезапуск запускает вторую копию рядом с первой, порт оказывается занят, и следующий старт падает. systemd предупреждает, что поддержка этого режима устарела и будет удалена.
Такие юниты часто остаются от старых сценариев установки экспортеров и агентов.
Как проверить
grep -rl "KillMode=none" /etc/systemd/system /lib/systemd/system 2>/dev/null
journalctl -b | grep "KillMode=none"
Что сделать
- Заменить в юните
KillMode=noneнаKillMode=mixed(основной процесс получает сигнал первым, остальные завершаются после) или убрать строку: по умолчанию используетсяcontrol-group. - Применить:
systemctl daemon-reload && systemctl restart <служба>. - Проверить, что после
systemctl stopпроцессов службы не осталось:systemctl status <служба>иpgrep -a <имя>. - Если юнит ставится сценарием автоматизации, исправить шаблон в нём, иначе правка пропадёт при следующем прогоне.
Ошибка повторяется?
Запустите Диагностика: за полминуты он покажет состояние базы, брокера, поиска и сервера. С отчётом разберём причину за 30 минут бесплатного созвона.
Написать