私は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}]
また、ユーザー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
最初の2つはdbusの問題に言及していますが、リンク2ではdbus-1.6.9で問題が修正されたと書かれているので、問題はこのバグではなく私の実装にあると思います。
リンク2および3のユーザーサービスの例を使用しました。