로그인 세션에서 D-Bus 세션 재사용


20

여러 로그인 세션을 통해 컴퓨터에 액세스합니다. 세션의 수명은 겹치거나 겹치지 않을 수 있습니다. 필자의 경우이 로그인 세션은 현재 항상 SSH를 통해 이루어 지지만 로컬 세션도 처리하는 것을 선호합니다.

때때로 이러한 세션에서 D-Bus가 필요하며 GVFS를 사용하기 위해 이러한 로그인 세션에서 동일한 D-Bus 세션을 공유하고 싶습니다 .

권장되는 방법은 무엇입니까? 알지 못하는 D-Bus의 사용을 중단하고 싶지 않습니다. 나는 사용을 고려했다

export $(dbus-launch --autolaunch $(cat /var/lib/dbus/machine-id))

그러나 (우분투 12.04 현재) 이것은 옳지 않은 것처럼 보입니다.

  • 여기에는 X 세션이 필요하지만 SSH 세션은 X 디스플레이를 전달하거나 전달하지 않을 수 있으며 동일하지 않은 세션도 전달합니다 $DISPLAY.
  • 사용 가능한 X 표시가 없으면 dbus-launch"자동 실행 오류 : X11 초기화에 실패했습니다."라고 불평하고 데몬을 시작하지 않습니다.
  • dbus-launch은 "그 사람 페이지 상태 --autolaunch옵션은 내부 구현 세부 간주된다 (...). 어쨌든 libdbus 구현 외부에서 사용할 이유가 없습니다.”

합니까 dbus-launch또는 D-버스 제품군을 지원하는 다른 도구가 자동으로 실행을 감지 dbus-daemon하고 그것에 연결? 필요한 정보는 ~/.dbus/session-bus/$(cat /var/lib/dbus/machine-id)-${DISPLAY#*:}D-Bus가 X 연결로 시작된 경우에 있지만 X 연결을 사용할 수없는 경우 어디에도 저장되지 않는 것 같습니다.

내 D-Bus 세션 파일을 압축해야합니까? 그렇다면 ~/.dbus/session-bus디렉토리에 파일을 사용해야 합니까? 경로가 /var/lib/dbus/machine-id신뢰할 수 있고 휴대 가능합니까?


1
이 답변은 당신을위한 해결책의 일부일 수 있습니다 : serverfault.com/questions/405518/…
sdive

1
나는 2 년 전에 DBus를 다루고 있었고 소스를 포함하여 많은 것을 읽지 않고 내 기억에 남은 모든 것은 다음과 같습니다. 각 로컬 사용자 세션마다 멋진 대신 어리 석습니다. 내 생각 엔 당신은 모든 것을 스스로해야합니다. 나는했지만 항상 X 세션을 가지고있어 조금 더 쉬웠다. 행운을 빕니다.
Bananguin

BLFS 책 ( Beyond Linux From Scratch ) 에서 dbus 구성 에 대한 좋은 정보를 보았습니다 .
Fiisch

답변:


6

DBus는 dbus 데몬 설정을 약간 까다롭게 만듭니다.

내 설정의 설정은 dbus-launch --sh-syntax에서 제공하는 파일에 저장됩니다 .bash_rc. 이것의 단점은 매번 재부팅 할 때마다 해당 프로세스가 수동으로 수행된다는 것입니다.

그러나 기존 DBus 데몬을 확인하는 것은 매우 간단해야합니다. 설정 파일이 $ HOME / .dbus_settings에 있다고 가정합니다.

need_start=1

if [ -r "$HOME/.dbus_settings" ]
then
    . "$HOME/.dbus_settings"
fi

if [ -n "$DBUS_SESSION_BUS_PID" ]
then
    if kill -0 "$DBUS_SESSION_BUS_PID" 2>/dev/null
    then
        need_start=0  # Found one
    fi
fi

if [ "$need_start" -ne 0 ]
then
    dbus-launch --sh-syntax >"$HOME/.dbus_settings"
    . "$HOME/.dbus_settings"
fi

--autolaunch옵션이 없으면 X Windows 연결이 필요하다고 생각하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.