Я настроил systemd так, чтобы использование systemctl start user@me
запускало мои пользовательские сервисы так, как я ожидал, но мой dbus просто не пошел (что мне нужно для PulseAudio).
Есть ли способ проверить dbus или systemd, чтобы выяснить, что я делаю не так?
На данный момент у меня нет идей для вещей, чтобы попробовать. Пожалуйста, дайте мне знать, если есть что-то еще, что я могу предоставить, что может иметь отношение.
Дополнительная информация / попытка разрешения
Я использую Arch Linux, systemd 204-1 и dbus 1.6.10-1
Запуск пользователя через systemd # systemctl start user@me
дает мне это:
├─systemd─┬─(sd-pam)
│ ├─mpd───5*[{mpd}]
│ └─pulseaudio─┬─gconf-helper
│ └─2*[{pulseaudio}]
Начиная systemd --user &
вручную, как мой пользователь производит:
├─bash─┬─pstree
│ └─systemd─┬─2*[dbus-daemon]
│ ├─dbus-launch <<< X only
│ ├─gconfd-2 <<< X only
│ ├─mpd───5*[{mpd}]
│ └─pulseaudio─┬─gconf-helper
│ └─2*[{pulseaudio}]
И выдает следующую ошибку, если я не в X, несмотря на то, что я включил мой пользователь dbus.service:
Failed to open private bus connection: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
Failed to open private bus connection: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
Ссылки по теме:
- /superuser/476379/how-do-i-setup-a-systemd-service-to-be-started-by-a-non-root-user-as-a-user-daem
- https://github.com/sofar/user-session-units
- https://github.com/grawity/systemd-user-units
Первые два упоминают проблему с dbus, но в ссылке 2 говорится, что проблема исправлена в dbus-1.6.9, поэтому я думаю, что проблема связана с моей реализацией, а не с этой ошибкой.
Я использовал пример пользовательских сервисов по ссылкам 2 и 3.
источник