在CMD输入 wsl -h
可以获取到常用指令信息,如:
wsl -l
wsl -d <分发>
wsl --set-default-version <Version>
wsl -s <分发>
wsl --set-version <分发> <版本>
wsl --shutdown
wsl -t <分发>
wsl --unregister <分发>
wsl --import <Distro> <InstallLocation> <FileName>
wsl --export <Distro[分发]> <FileName[文件名,包含文件全路径]>
WSL2开机启动服务有两种实现方式(效果和方式不同):
方式一:
前提条件:需在WSL2的CentOS中启用systemctl命令,具体参考请另一篇文章:Win10 WSL2-CentOS7开启systemctl命令
和正常linux一样,在WSL2的CentOS中使用systemctl enable 服务名
命令对服务启用开机启动;当WSL2开机后,已启用开机启动的服务会陆续启动,但是启动速度较慢;实测docker用这种方式开机启动大约需要6分钟左右;
使WSL2随windows开机启动:
Set ws = WScript.CreateObject("WScript.Shell")
ws.run "wsl -d CentOS7 -u root",vbHide '静默启动WSL2;此命令为开机运行WSL2分发,并隐藏命令行窗口在后台运行,进程名为wsl.exe;如需前台弹窗运行,去掉vbHide参数即可
优缺点备注:
systemctl enable 服务名
命令实现;方式二:
首先创建后缀为wsl的文件 文件创建到/etc/目录下 命令sudo vim /etc/init.wsl
编辑wsl文件 wsl文件支持shell脚本,这里只演示一个宝塔面板启动
示例(宝塔开机启动):
/etc/init.d/bt start #宝塔开机启动;不能使用systemctl命令,会报错
授予init.wsl写入权限:sudo chmod 777 /etc/init.wsl
到这里liunx里的配置就完事了,但你会发现重启电脑后,liunx docker并没有启动,需要利用window的自启动shell脚本来实现docker启动,步骤如下:
Set ws = WScript.CreateObject("WScript.Shell")
ws.run "wsl -d CentOS7 -u root /etc/init.wsl",vbHide '静默执行init.wsl中的命令;并隐藏命令行窗口在后台运行,进程名为wsl.exe;如需前台弹窗运行,去掉vbHide参数即可
优缺点备注:
systemctl start 服务名
或 service 服务名 start
命令实现;即使是按照文章Win10 WSL2-CentOS7开启systemctl命令在WSL2中启用systemctl命令也不行;猜测可能是因为刚开机,wsl2没有完成环境初始化的原因;这也从侧面解释了为什么方式一的开机启动需要五六分钟的原因。