/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 $@