/tmp
ディレクトリを含むマルチシートデスクトップシステムマルチインスタンス化、/tmp/.X11-unix/
ディレクトリとインスタンスはまだユーザーの下ではなくXn
ルートの下に作成されます。/tmp
ssh -Y
既定で使用するか、X 転送を通じて X11 アプリケーションを実行しようとすると、次のエラーが発生します。connect /tmp/.X11-unix/X0: No such file or directory
おそらく、これはインスタンス化されていないルートまたはシステムユーザーアカウントによってセッションが作成され、レガシーの場所/tmp
にあるためです。
この問題を解決する方法はありますか?それとも互換性がないのですか?
システムは現在lightdm
ログインマネージャとして使用されているため、Xorg
セッションはrootとして実行されます。
答え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 $@