"connect /tmp/.X11-unix/X0: 해당 파일 또는 디렉터리 없음"을 유발하는 /tmp의 다중 인스턴스 수정

"connect /tmp/.X11-unix/X0: 해당 파일 또는 디렉터리 없음"을 유발하는 /tmp의 다중 인스턴스 수정

/tmp디렉토리가 있는 다중 시트 데스크탑 시스템다중 인스턴스화, /tmp/.X11-unix/디렉터리와 인스턴스는 여전히 사용자 아래가 아닌 Xn루트 아래에 생성됩니다 ./tmp

ssh -Y기본적으로 사용하거나 X 전달을 통해 X11 응용 프로그램을 실행하려고 하면 다음과 같은 오류가 발생합니다.connect /tmp/.X11-unix/X0: No such file or directory

아마도 이는 인스턴스화되지 않은 루트 또는 시스템 사용자 계정에 의해 세션이 생성되어 레거시 /tmp위치에 있기 때문일 것입니다.

이 문제를 해결할 수 있는 방법이 있나요? 아니면 호환되지 않는 것인가요?

시스템은 현재 lightdm로그인 관리자 로 사용되고 있으므로 Xorg세션은 루트로 실행됩니다.

답변1

해결 방법(완전한 솔루션은 아님)은 이를 ssh릴레이를 생성하는 스크립트로 래핑하는 것입니다.

~/bin/ssh:

# Do we have a display?
# Does our display relay exist?
if [ ! -z $DISPLAY ] && \
   [ ! -e "/tmp/.X11-unix/X${DISPLAY#*:}*" ]
then
    # Create X11-unix dir if need be.
    mkdir -p /tmp/.X11-unix

    # Create reusable display relay
    socat \
     UNIX-LISTEN:/tmp/.X11-unix/X${DISPLAY#*:},fork,reuseaddr \
     ABSTRACT-CONNECT:/tmp/.X11-unix/X${DISPLAY#*:} \
     &>/dev/null &
fi

# Do the useful thing...
/usr/bin/ssh $@

관련 정보