Ошибки

System has not been booted with systemd as init system: systemctl не работает

systemctl работает только там, где систему запустил systemd. В WSL без настройки и внутри контейнера Docker его нет. Ниже — как включить systemd в WSL и как быть в контейнере.

Обновлено 10.10.2026≈ 3 мин чтения
Содержание 7

Как выглядит ошибка

System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

«Система загружена без systemd в роли главной программы (PID 1). Работать не могу». Вторая строка — следствие первой: systemctl не к кому подключиться.

Где вы набрали команду

На VPS с Ubuntu systemd запускается вместе с сервером, и этой ошибки там нет. Она появляется в двух случаях:

  • В WSL — Linux внутри Windows, — если systemd в нём не включён.
  • Внутри контейнера Docker: там запущена одна программа, а не целая система.

Если вы хотели управлять сервером, подключитесь к нему по SSH (как подключиться) и наберите команду там.

Как включить systemd в WSL

Нужна WSL версии 0.67.6 или новее. Проверьте её в PowerShell на Windows:

wsl --version

Если версия старше или команда выдаёт ошибку, обновите WSL командой wsl --update. Затем откройте Ubuntu в WSL и выполните:

sudo nano /etc/wsl.conf

Добавьте в файл строки:

[boot]
systemd=true

Сохраните файл: Ctrl+O, Enter, затем Ctrl+X. Закройте окно Ubuntu и перезапустите WSL — в PowerShell на Windows:

wsl --shutdown

Снова откройте Ubuntu и проверьте:

systemctl status

Если вместо ошибки появилось состояние системы — systemd работает. Выйти из просмотра — клавиша Q.

Если вы внутри контейнера Docker

В контейнере systemctl не нужен: контейнер запускает одну программу, и Docker следит за ней сам. Программу в контейнере запускают командой из его настроек — CMD в Dockerfile или command в compose.yaml, — а не через systemctl.

Перезапускают такую программу снаружи, на сервере, командой docker restart с именем контейнера. Почему контейнер не работает, видно в его логах — подробнее на странице контейнер сразу останавливается.

Failed to connect to bus без первой строки

Другое сообщение бывает у команды systemctl --user — управления своими службами пользователя:

Failed to connect to bus: $DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not defined (consider using --machine=<user>@.host --user to connect to bus of other user)

Оно значит, что для вашего пользователя не нашлись данные сеанса. Так бывает, если вы перешли в другого пользователя командой su или sudo -u. Подключитесь по SSH сразу под нужным пользователем и повторите команду.

Тексты сообщений сверены с исходным кодом systemd 255 — эта версия стоит в Ubuntu 24.04. В других версиях systemd слова могут немного отличаться.

Источники

Сверено 10 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 10.10.2026