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

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

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
systemd Error: Target multi-user.target refused to activate Linux / DevOps

Ошибка systemd: Target multi-user.target refused to activate — Решение

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

В процессе загрузки операционная система останавливается до входа в систему и сбрасывается в emergency mode. В журнале ядра отображается сообщение: Target multi-user.target refused to activate или Transaction for multi-user.target/start dropped: Circular dependency.

СимптомПричинаУровень сбоя
Отказ старта multi-user.targetЦиклическая зависимость (Dependency loop) в пользовательских юнитахBootloader / Early Init
Сброс в emergency.targetКритическая служба из Requires= завершилась крахомСистемная инициализация
Отказ default.targetБитая символическая ссылка на target в /etc/systemd/system/Менеджер юнитов PID 1
  • Сервер зависает на этапе монтирования или инициализации консоли TTY.
  • Команда systemctl is-system-running возвращает статус degraded или maintenance.
  1. Перейдите в аварийный режим или загрузитесь с параметром ядра systemd.unit=rescue.target.
  2. Выполните поиск циклических блокировок и взаимных зависимостей (loops) в транзакциях systemd:
    sudo journalctl -b -p err..emerg | grep -i "dependency"
  3. Проверьте целостность и цель ссылки default.target:
    ls -l /etc/systemd/system/default.target
    # Установите штатный целевой таргет:
    sudo systemctl set-default multi-user.target
  4. Выявите упавшие сервисы, блокирующие активацию таргета:
    systemctl --failed
    systemctl list-dependencies multi-user.target --reverse
  5. Если в кастомных юнитах настроены взаимоисключающие директивы Before= и After= (например, сервис A требует B, а B запускается строго после A), исправьте unit-файлы в /etc/systemd/system/.
  6. Примените исправления и продолжите штатную загрузку:
    sudo systemctl daemon-reload
    sudo systemctl isolate multi-user.target
Предупреждение: Никогда не используйте директиву Requires= для вспомогательных сервисов без директивы After=, иначе systemd попытается запустить их строго параллельно, что приведет к race condition и сбою таргета.
Практический опыт инженера: Часто петли зависимостей создаются администраторами при попытке привязать сервис к `network-online.target` с одновременным указанием `Before=basic.target`.

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

Что такое multi-user.target в Linux?

Это стандартный целевой уровень инициализации systemd (аналог Runlevel 3 в SysVinit), настраивающий многопользовательскую консольную среду без графической оболочки со всеми запущенными сетевыми демонами.

Как найти циклические зависимости в сервисах?

Команда journalctl -b | grep -i 'ordering cycle' выведет список служб, образующих замкнутый круг взаимозависимостей, которые systemd пытается разорвать принудительно.

В чем разница между multi-user.target и graphical.target?

graphical.target включает в себя все компоненты multi-user.target, плюс дополнительно запускает Display Manager (GDM/LightDM) и графический сервер X11/Wayland.

Как принудительно перейти в multi-user.target из работающей системы?

Используйте команду isolation: sudo systemctl isolate multi-user.target.