我已经进行了系统设置,以便使用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}]
尽管我确实启用了用户dbus.service,但如果我不在X中,并吐出以下错误:
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中的示例用户服务。