管理工具
微软商店的 WSL Manager
图形化管理工具十分好用,可以配置 wsl 的各项参数,包括systemd、内存上限、cpu上限等,只是需要收费。
常用命令
wsl -l -v # 列出当前安装LINUX发行版的状态及版本
wsl --update #更新WSL
wsl --set-version <distribution name> <versionNumber> # 设置wsl版本
wsl -d <Distribution Name> -u <User Name> # 运行特定的 Linux 发行版
wsl --help # 帮助指令
wsl --shutdown # 关闭 WSL
wsl --unregister <DistributionName> # 注销或卸载LINUX发行版
启用 systemd
在 WSL 镜像中执行
echo -e "[boot]\nsystemd=true" | sudo tee -a /etc/wsl.conf
执行完后重启 wsl, 通过 wsl --shutdown
命令关闭 WSL,来进行完整的重启。
判断是否启用成功
ps --no-headers -o comm 1
# 输出进程号为 1 的进程名
如果返回是init
则未启用成功,为systemd
则启动成功
查看已启用的 systemd service
systemctl list-units --type=service
systemctl list-unit-files --type=service --state=enabled
常见问题
和vpn冲突导致无法启动
产生原因和解决方法分析: 代理软件和wsl2的sock端口冲突,使用netsh winsock reset重置修复。
Proxifer开发人员解释如下: 如果Winsock LSP DLL被加载到其进程中,则wsl.exe将显示此错误。最简单的解决方案是对wsl.exe使用WSCSetApplicationCategory WinAPI调用来防止这种情况。在后台,该调用在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog中为wsl.exe创建一个条目。 这将告诉Windows不要将LSP DLL加载到wsl.exe进程中
详见:
参考
文档信息
- 本文作者:ChunHui Cao
- 本文链接:https://monsterCCH.github.io/wiki/wsl/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)