win10 使用WSL2 添加Linux子系统,设置图形桌面,并设置开机启动桌面服务

Win10 子系统安装

更新WSL2需要Windows10版本2004且内部版本高于19041。
安装过程可参考 https://blog.csdn.net/qq_33306246/article/details/107367629

图形桌面安装

安装过程可参考https://zhuanlan.zhihu.com/p/149501381
该文章中提到了重要的一点 由于WSL2里面不能用systemd,所以需要手动启动

自动启动win10 Linux子系统程序

参考第三篇文章 https://blog.csdn.net/hiqiming/article/details/105244147

我的启动脚本如下

Set ws = WScript.CreateObject("WScript.Shell")        
ws.run "wsl -d Ubuntu-20.04 -u root /etc/init.wsl"

实际测试脚本执行了,但是远程连接并不能连接上

问题分析

在测试脚本时,每次都重启太麻烦,于是直接使用 (在win10中运行命令 启动子系统中 桌面服务)来测试。

win10 使用WSL2 添加Linux子系统,设置图形桌面,并设置开机启动桌面服务

但是运行命令后,使用远程工具连接并不能成功。(但是从子系统中直接运行命令却可以成功)
会不会是权限问题。

我用管理员权限运行

wsl -d Ubuntu-20.04 -u root /etc/init.wsl

发现居然成功了。

更诡异的事情

我又试了一下mysql,看看mysql和xrdp是不是一样的效果,发现mysql可以成功,但是xrdp不可以。

init.wsl 文件如下

#! /bin/sh
/etc/init.d/xrdp start
service mysql start

但是如果重启会发现mysql会报一个异常关机的错误。
为了消除该错误,我们在启动mysql服务前先关闭mysql服务

修改后init.wsl 文件如下

#! /bin/sh
/etc/init.d/xrdp start
service mysql stop
usermod -d /var/lib/mysql/ mysql
service mysql start

然后 mysql没问题,xrdp远程桌面也可以直接访问了!!!

win10 使用WSL2 添加Linux子系统,设置图形桌面,并设置开机启动桌面服务

上一篇:[C#] (原创)进度等待窗口(附:自定义控件的使用)


下一篇:Dubbo admin 在Windows下的安装和服务发现