dbus 및 systemd/user 관련 문제

dbus 및 systemd/user 관련 문제

systemctl start user@me를 사용하면 예상대로 사용자 서비스가 시작되지만 dbus 서비스는 시작되지 않도록 systemd를 설정했습니다 (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

관련된 링크들:

  1. https://superuser.com/questions/476379/how-do-i-setup-a-systemd-service-to-be-started-by-a-non-root-user-as-a-user-daem
  2. https://github.com/sofar/user-session-units
  3. https://github.com/grawity/systemd-user-units

처음 두 개는 dbus 관련 문제를 언급했지만 링크 2에서는 문제가 dbus-1.6.9에서 수정되었다고 나와 있으므로 문제는 이 버그가 아니라 내 구현에 있는 것 같습니다.

저는 링크 2와 3의 샘플 사용자 서비스를 사용했습니다.

답변1

DBUS_SESSION_BUS_ADDRESSD-Bus를 사용하려는 프로세스에 대해 이 옵션이 설정되지 않은 경우 기본적으로 프로세스는 dbus-launch를 호출하고 --autolaunch새 세션 버스를 시작하거나 X 디스플레이 또는 파일에서 기존 버스 주소를 찾도록 선택합니다 ~/.dbus/session-bus/.

$DISPLAY가 다른 서버를 사용하는 것과 같은 방식으로 dbus가 Xorg와 함께 사용되지 않는 경우 이 환경 변수를 설정하여 사용할 버스 세션을 dbus에 알릴 수 있습니다.

export DBUS_SESSION_BUS_ADDRESS=""

더 많은 정보를 원하시면 읽어주세요http://dbus.freedesktop.org/doc/dbus-launch.1.html

답변2

dbus와 함께 X를 사용하지 않는 경우,

이 환경 변수를 설정하여 dbus에 사용할 버스 세션을 알릴 수 있습니다.

export DBUS_SESSION_BUS_ADDRESS=

답변3

[email protected]대신 사용해 보셨나요 [email protected]? 처음에는 문제가 있었고 [email protected](정확히 어떤 문제인지 더 이상 알 수 없음) 전환한 후에는 문제가 해결되었습니다.

연결한 두 번째 저장소에 있습니다. 본 기기는 DISPLAY변수를 로 설정합니다 :0. 여러 모니터에서는 작동하지 않지만 하나의 모니터에서는 잘 작동합니다.

관련 정보