
我對 Windows 10 上的 WSL2 非常滿意,因為我剛從 Mac 切換到 Windows 10。我跑X410在 Windows 主機上並透過設定啟動 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
您可以使用X普拉或者X2Go作為一種解決方法(對我來說 X2Go 效果更好)。
X普拉
- 在您的 Linux 發行版上安裝 Xpra(
apt install xpra
在 Ubuntu 上)。 - 在 Windows 上安裝 Xpra(安裝程式位於Xpra客戶端下載)
- 使用以下命令在 Linux 中啟動 xpra
xpra start --bind-tcp=0.0.0.0:10000 :10000
- 在 Windows 中啟動
Xpra.exe
並連線到 Port10000
。
客戶端將在睡眠/待機後自動重新連線。即使您失去連線(也許是登入 VPN 時),您也可以隨時手動重新連線。
X2Go
- 在您的 Linux 發行版上安裝 X2Go(
apt install x2goserver
在 Ubuntu 上)。 - 在Windows上安裝X2Go客戶端(安裝程式位於X2Go客戶端下載)
- 在 Linux 上修復並啟動 sshd:
您還必須在每次 WSL 重新啟動時啟動 sshdsudo apt-get remove --purge openssh-server sudo apt-get install openssh-server sudo service ssh --full-restart
sudo service ssh start
。 - 在 Windows 上啟動用戶端,使用「會話類型:已發佈的應用程式」進行連接
PS:我目前正在寫一篇小部落格文章:WSL2 中的開發環境
答案3
對於這個問題有一個非常好的解決方案:https://github.com/nbdd0121/wsld。
WSL Daemon - WSL2 的穩定 X11 連線和時間同步
它所做的正是其他解決方案之一所無法做到的:使用 Unix 域套接字。我已經使用它好幾個月了,沒有出現任何問題。