私はMacからWindows 10に切り替えたばかりですが、WSL2にとても満足しています。X410Windowsホスト上で、WSL内でX11アプリを起動するには、
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }'):0.0
プログラムを開始する前に。
しばらくは正常に動作しますが、コンピュータがスリープ状態から復帰すると、X ウィンドウが消えてしまいます。アプリケーションは引き続き実行中として表示されますps
。
X11 アプリと X410 サーバー間のネットワーク接続が失われていることに関係しているような気がしますが、よく分かりません。この現象を経験し、回避策を思いついた方はいますか?
私は Windows 10 Insider Preview ビルド 18945 を使用しています。
答え1
答え2
使用できますエクスプラまたはX2Go回避策として(私の場合は X2Go の方がうまく機能します)。
エクスプラ
- Linux ディストリビューション (
apt install xpra
Ubuntu の場合) に Xpra をインストールします。 - WindowsにXpraをインストールする(インストーラーはXpraクライアントのダウンロード)
- Linuxでxpraを起動するには
xpra start --bind-tcp=0.0.0.0:10000 :10000
Xpra.exe
Windows で起動し、ポートに接続します10000
。
クライアントはスリープ/スタンバイ後に自動的に再接続します。接続が失われた場合でも (VPN にログインしているときなど)、いつでも手動で再接続できます。
X2Go
- Linux ディストリビューション (
apt install x2goserver
Ubuntu の場合) に X2Go をインストールします。 - WindowsにX2Goクライアントをインストールします(インストーラーはX2Goクライアントのダウンロード)
- Linux で sshd を修正して起動します。
また、WSL を再起動するたびに sshd を起動する必要がありますsudo apt-get remove --purge openssh-server sudo apt-get install openssh-server sudo service ssh --full-restart
sudo service ssh start
。 - Windowsでクライアントを起動し、「セッションタイプ: 公開アプリケーション」を使用して接続します。
追伸: 現在、短いブログ記事を書いています:WSL2の開発環境
答え3
これには完璧な解決策があります:https://github.com/nbdd0121/wsld。
WSL デーモン - WSL2 の安定した X11 接続と時間同期
これは、他のソリューションの 1 つが示唆しているのとまったく同じことを行います。つまり、Unix ドメイン ソケットを使用します。私は何ヶ月も問題なく使用しています。