やりたいこと
遠隔ホストのXアプリケーションを、ローカルPC(ubuntu)上で表示したい。
昔の方法で実行すると失敗した
昔の知識で、以下のように実施してみたが、ローカルPC上でXアプリが表示されない。
- (ローカルPC上で) $ xhost +
- (ローカルPC上で) $ ssh -X {Remote-IP}
- (リモートPC上で) $ export DISPLAY={Local-IP}:0.0
- (リモートPC上で) $ ./{X-PGM}
- 以下のようなメッセージが表示され、Xアプリ画面が表示できない。
Can't connect to X11 window server using '{IP}:0.0' as the value of the DISPLAY variable.
調べてみると
ubuntu内の"Xorg"の引数に変なもの(-nolisten tcp)が入っていた。
/usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
どうやら、nolistenがあるので、Xorgポートが外部にLISTENされていないらしい。
対応その1(失敗)
まず、文字列nolistenを/etc/内から検索。
# egrep -R nolisten /etc/
/etc/X11/xinit/xserverrc: exec /usr/bin/X -nolisten tcp "$@"
そして、 /etc/X11/xinit/xserverrcの該当行をコメントした。
が、"Xorg"の引数は変更されず。失敗。
対応その2(成功)
# ps -ef | egrep 898
root 898 1 0 07:06 ? 00:00:00 /usr/sbin/lightdm
root 1004 898 0 07:06 tty7 00:02:17 /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -listen tcp vt7 -novtswitch
root 1024 898 0 07:06 ? 00:00:00 lightdm --session-child 12 15
Xorgを起動しているのが、lightdmであることが判明
lightdmの設定ファイルに"xserver-allow-tcp=true"を追加。
# cat /etc/lightdm/lightdm.conf
[Seat:*]
autologin-guest=false
autologin-user=mishikawan
autologin-user-timeout=0
# ADD
xserver-allow-tcp=true
lightdmのリスタート
# /etc/init.d/lightdm restart