WSL中的服务不会随着Windows系统启动而启动,需要人工去启动它。
但我们可以使用批处理脚本来达到开机启动WSL中服务程序的目的。
- 创建一个批处理文件。比如命名为
init.bat
,内容如下
cd /d %~dp0
ubuntu2004.exe run /etc/init.d/ssh start
:: 其他更多需要启动的服务
我是手动下载安装的WSL,所以用的是ubuntu2004.exe
程序来执行。
如果是从微软应用商店安装的可以尝试将命令改为wsl -d ubuntu -u root /etc/init.d/ssh start
。
- 在Windows中创建一个新的任务计划程序。
运行taskschd.msc
打开任务计划管理器,创建一个新的任务计划,设置为不管用户是否登录都要运行
,并且以安装了WSL的那个用户的身份来运行此任务,因为WSL环境是和用户绑定的。
触发器设置为开机启动
这样保证了Windows启动后即使没有用户登录也能开启服务(服务器场景)。