Ошибка режима пользователя systemd на сервере CentOS 7.0 (1406)

Я пытаюсь запустить пользовательский режим systemd на сервере CentOS 7.0 (X11 не установлен). например

systemctl --user start hw.service

это реагирует:

Failed to get D-Bus connection: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11

Если я добавлю

export DISPLAY=:0

и запустить снова, он сообщает:

Failed to get D-Bus connection: /bin/dbus-launch terminated abnormally without any error message

Кто-нибудь может пролить свет на это? кстати, systemctl - версия отчетов:

systemd 208
+PAM +LIBWRAP +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ

Спасибо!

1 ответ

Решение

CentOS не поддерживает "systemd --user". Их пакеты полностью удаляют эту часть systemd. (Обратите внимание, как нет user@.service кроме всего прочего.)


Тем не менее, сообщение об ошибке автозапуска libdbus вводит в заблуждение, и ваш $DISPLAY неправильно.

Сообщение об ошибке действительно гласит: "[systemctl не смог связаться с systemd по частному адресу, поэтому он попросил libdbus использовать шину сеанса, но] адрес шины сеанса не был задан явно, поэтому libdbus попытался запустить один из них, но не смог сделать это либо ".

Теперь, если вы пытаетесь использовать автозапуск сеанса D-Bus, тогда просто установить $DISPLAY будет недостаточно - можно ожидать, что сервер X11, такой как Xorg, уже будет работать с:1 или около того (в этом случае $DISPLAY будет уже будет установлен).

Но systemctl --user на самом деле не хочет автозапуска - он ожидает найти systemd в определенном месте, /run/user/$UID/bus а также /run/user/$UID/systemd/private - поэтому запуск нового автобуса был бы бесполезен, потому что там не было бы системы. Поэтому последние версии больше не используют автозагрузку (или libdbus в этом отношении).

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