systemctl редактируют проблему, “Отказавшую для соединения с шиной”

Когда я пытаюсь создать новую systemd единицу (на Ubuntu 16.04)

$ sudo systemctl edit --user --full --force wagoOpenhabBridge.service
Failed to connect to bus: No such file or directory

Кроме этой проблемы хорошо работает мой systemd.
После некоторого интернет-исследования я проверил эти вещи:

  • Я не использую докера, Ubuntu работает непосредственно на аппаратных средствах Intel NUC x64
  • systemd работает с PID=1
  • Переменные XDG в ENV

    XDGSESSIONID=1790   
    XDGDATADIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop     
    XDGRUNTIMEDIR=/run/user/1000
    

Какие-либо идеи, что идет не так, как надо? Что другие вещи я могу проверить?

2
задан 18 February 2018 в 21:37

3 ответа

dbus пакет установлен?

Я заметил подобную проблему при выполнении systemctl show $UNIT как пользователь, с соединением, предпринятым на /var/run/dbus/system_bus_socket который только существует если dbus-daemon --system работает, которому самостоятельно нужно dbus пакет, который будет установлен.

Можно заняться расследованиями далее при помощи strace для проверки, какие syscalls выполняются и определяют который точные проблемы это Неудавшееся для соединения с шиной: Никакой такой файл или каталог не о. Даже если, не пытаясь получить доступ к системной шине, это, вероятно, будет связанная D-шина.

Ваш systemd пакет мог бы иметь dbus в Recommends (это имеет место в Debian 9, по крайней мере); проверка их является обычно хорошей идеей, когда что-то не работает как ожидалось.

0
ответ дан 2 December 2019 в 02:44

Я просто столкнулся с подобной проблемой, она была вызвана путем попытки выполнить сервис как пользователя, я не был зарегистрирован с (у этого пользователя есть вход в систему, отключают, и я использовал su и sg фальсифицировать его).

Почему sudo ?

Вы, вероятно, добавили sudo потому что команда не работала, можно безопасно удалить ее. Пользователь systemd сервис является регулярным файлом, принадлежавшим обычному пользователю.

Фиксация Failed to connect to bus: No such file or directory

Я нашел решение на stackexchange, DBUS_SESSION_BUS_ADDRESS кажется, отсутствует в Вашей среде.

Ваша команда может быть выполнена как это:

export XDG_RUNTIME_DIR="/run/user/$UID"
export DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus"
systemctl edit --user --full --force wagoOpenhabBridge.service

Выполнение команды перед входом в систему

Если Вы хотите, чтобы сервис был запущен перед пользовательским входом в систему, не забывайте работать:

sudo loginctl enable-linger USERNAME
3
ответ дан 2 December 2019 в 02:44

Решение: установить пакет dbus-user-session (sudo apt install dbus-user-session), перезагрузить компьютер и снова войти в систему.

2
ответ дан 11 September 2020 в 05:45

Другие вопросы по тегам:

Похожие вопросы: