e-tipsmemo

ごった煮

WSL2のGUIをxrdpで見る

WSL2でGUIの表示を行う時には、
Vcxsrvを使う方法があった。
それとは別に、xrdpを使う方法もあるようだ。

qiita.com
このままでほぼ完成しているが、リモートデスクトップを放置すると黒い画面になって復帰できない。
WSL2上で

pkill xfce4-session

とすれば、治るが、面倒くさいので画面ロックを解除する。
f:id:katakanan:20210404193449p:plain
f:id:katakanan:20210404193634p:plain

しかし、GUI表示をしたいときというのはWindows側から、
VScodeなどでpythonをいじってmatplotlibで表示したりしたかったので、
リモートデスクトップに表示されているディスプレイにWSL2から表示できるようにする。

ps -ef | egrep Xorg

で見ると、

124   122  1 19:22 pts/0    00:00:20 /usr/lib/xorg/Xorg :16 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp -logfile .xorgxrdp.%s.log

nolistenとなっている。
PIDをたどると
f:id:katakanan:20210404194304p:plain
とxrdp-sesmanというのが起動しているらしいので、
設定ファイルは

/etc/xrdp/sesman.ini

にあって、Xorgのパラメータをlisten tcpにする。

[Xorg]
...
param=-listen
param=tcp
....

ディスプレイナンバーは16なので

export DISPLAY=localhost:16.0

とすれば、Windows上のWSL2ターミナルから起動したGUIリモートデスクトップ接続されたところに表示される。
f:id:katakanan:20210404194932p:plain