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

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

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

Ошибка systemd: Failed to open private bus connection — Решение

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

Команды управления службами systemctl, loginctl или journalctl возвращают критический отказ: Failed to open private bus connection: Connection refused или Failed to connect to bus: Host is down.

ОкружениеПервопричинаСимптом
Docker / LXC контейнерSystemd не запущен как PID 1 (запущен bash/sh)Команды systemctl не работают внутри контейнера
Chroot / LiveCDОтсутствует монтирование /run/systemd/privatesystemctl не может связаться с PID 1 хоста
Полноценная ОС LinuxПадение демона dbus.service / systemd-sysvПолный отказ IPC шины управления сервисами
  1. Если ошибка возникает в Docker контейнере: systemd не предназначен для запуска внутри стандартного контейнера без специализированного Entrypoint. Запускайте сервисы напрямую либо используйте контейнеры с поддержкой systemd init.
  2. Если ошибка возникает в chroot-окружении, используйте команду systemctl с флагом --root или заменяйте операции утилитой service / update-rc.d:
    # Вне chroot:
    sudo systemctl --root=/mnt enable <service>
  3. На реальном сервере проверьте статус сокета dbus и сокета приватной шины:
    ls -la /run/systemd/private
    ls -la /run/dbus/system_bus_socket
  4. Если сокеты отсутствуют из-за переполнения /run, освободите память tmpfs:
    df -h /run
    sudo systemctl daemon-reexec
Архитектурный совет: Для управления сервисами внутри chroot используйте прямой вызов бинарников или `systemctl daemon-reload` через хостовую систему с монтированием `/run`.
Практический опыт инженера: Если эта ошибка возникла на рабочей bare-metal машине, ядро потеряло связь с PID 1 или процесс systemd завис в D-state (uninterruptible sleep). Проверьте `dmesg` на наличие hardware trace.

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

Что означает команда systemctl daemon-reexec?

Она перезапускает управляющий процесс systemd (PID 1) с сохранением состояния всех запущенных юнитов и пересозданием системных сокетов IPC.

Почему systemctl не работает внутри chroot?

Потому что chroot изолирует файловую систему и скрывает сокет /run/systemd/private, через который клиент systemctl общается с PID 1.