Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
Breaking ordering cycle by deleting job sysinit.target/start Linux / DevOps

Breaking ordering cycle deleting job sysinit.target — Сбой загрузки

Обновлено: 18.08.2026  ·  Официальная база знаний

Архитектура ошибки и симптомы сбоя

Сообщение «systemd[1]: Breaking ordering cycle by deleting job sysinit.target/start to avoid deadlock» указывает на критическую аварию механизма разрешения зависимостей. sysinit.target отвечает за базовую инициализацию ОС: монтирование виртуальных ФС (/proc, /sys), криптографию, генераторы случайных чисел и udev. Когда пользовательский сервис ошибочно объявляет себя предшественником низкоуровневых служб, systemd удаляет задачу sysinit.target, оставляя хост в полуинициализированном состоянии без сети, сокетов и логов.

Диагностическая таблица параметров сбоя

ПараметрЗначениеИнженерный смысл сбоя
sysinit.targetSystem Initialization TargetФундаментальная фаза загрузки Linux, предшествующая всем службам пользователя.
Deadlock AvoidanceJob EvictionАварийная мера: удаление ключевого таргета ради предотвращения вечного зависания ядра.
ConsequenceMissing Devices / SocketsСетевые карты, диски и сокеты DBus не инициализируются должным образом.

Пошаговое дерево решений и сценарии траблшутинга

Сценарий 1: Быстрый поиск виновника цикла в системных логах

# Вывод точной цепочки юнитов, вызвавших петлю вокруг sysinit.target:
sudo journalctl -b | grep -B 5 -A 5 "Breaking ordering cycle"

Сценарий 2: Поиск пользовательских unit-файлов с некорректными After/Before

Найдите кастомные службы, в которых директива Before=sysinit.target конфликтует со стандартными зависимостями:

# Поиск подозрительных зависимостей в /etc/systemd/system/:
grep -rn -E "(sysinit.target|basic.target|local-fs.target)" /etc/systemd/system/

Сценарий 3: Исправление unit-файла виновной службы

Если службе действительно нужно запускаться на этапе инициализации системы:

[Unit]
Description=Critical Early System Service
DefaultDependencies=no
After=local-fs.target
Before=sysinit.target
Conflicts=shutdown.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/early-init.sh

[Install]
WantedBy=sysinit.target

Сценарий 4: Верификация чистоты дерева инициализации

# Проверка отсутствия ошибок после редактирования:
sudo systemd-analyze verify sysinit.target
sudo systemctl daemon-reload
После обновления пакетов сервер загружается без сети и половины демонов?
ITSTM локализует скрытые циклические блокировки в пакетах дистрибутивов и восстановит штатную цепочку sysinit -> basic -> multi-user.
Практический опыт инженера: Никогда не используйте директиву WantedBy=sysinit.target для обычных прикладных скриптов мониторинга или бэкапа. Единственное назначение ранних таргетов — низкоуровневые драйверы и базовая разметка памяти.

Частые вопросы (FAQ)

Почему systemd удаляет именно sysinit.target, а не сбойную службу?

Математический алгоритм разрыва циклов в systemd выбирает ребро графа с наименьшим числом обратных связей. Из-за архитектурных особенностей графа жертвой часто становится именно sysinit.target или basic.target.

Что произойдет, если sysinit.target будет удален во время бута?

Сервер может загрузить ядро, но не настроит сетевые интерфейсы, не применит параметры sysctl из /etc/sysctl.d, не настроит entropy pool и не запустит D-Bus.

Как безопасно добавить скрипт, исполняемый при старте ОС?

Привязывайте скрипты к multi-user.target (WantedBy=multi-user.target) со стандартными зависимостями After=network.target. Не используйте ранние таргеты без крайней необходимости.

Как посмотреть время загрузки каждого таргета?

Используйте команды systemd-analyze time и systemd-analyze critical-chain.