背景
WSL2在未使用的情况下也会占用大量内存,这十分不友好。故创建脚本使得WSL服务在需要时再启动,空闲时不会占用内存。
注意:WSL1不会出现在未使用时占用大量内存的情况。
实现代码
启动.bat
sc.exe config WSLService start=demand
sc.exe start WSLService
停止.bat
sc.exe stop WSLService
sc.exe config WSLService start=DISABLED
原理
使用Windows的sc命令控制服务开启与关闭,
- 上面的demand含义为手动,在手动状态下某些时刻也会自动启动该服务,即使你没有主动打开WSL。
- DISABLED为禁止,即使在命令行中执行WSL也不会启动。
当需要启动时执行启动.bat即可,WSL进程会马上启动。
配置
将上面的命令保存为bat文件后,如要实现快速执行,可以尝试以下方法:
- 为它们加入到环境变量Path中,就可以使用Win+R快速启动
- 加入某些快速启动工具命令中,如Listary
命令执行后会出现一闪而过的命令行窗口。