【WSL2小技巧】Win10/Win11 开机自动启动 WSL2 下 Ubuntu 内 Linux 程序

Win10 开机自动启动 WSL2 下 Ubuntu 内 Linux 程序

  • 前言
  • 一、启动过程
  • 二、开机自启举例
    • 1. 安装Linux程序(以redis为例,redis安装过程略)
    • 2. 编写启动redis脚本
    • 3. 编写Win10/Win11开机脚本
    • 4. 故障排除办法
  • 总结
  • 扩展
    • 如何给Win10/Win11安装Ubuntu?参考下文


前言

Linux是非常优秀的操作系统,其上服务类应用更是性能优异,可我们平常更多时候使用的是Windows操作系统。怎样能鱼和熊掌兼得呢?

还好Win10/Win11给我们带来惊喜,可以在Win10/Win11里通过WSL再安装一套Linux操作系统,如Ubuntu系统。如何安装见文末链接。

但是,我们如果需要Win10/Win11开机后,Ubuntu系统也可以自动启动,并还希望它可以自动加载我们指定的服务器程序,该怎么办呢?下面就给大家讲解一下:

一、启动过程

由于WSL2里面不能用systemd,所以WSL2里面的程序启动需要借助外部脚本,启动过程如下:
Win10/Win11开机 >> Win10/Win11开机脚本 >> Linux子系统脚本 >> 启动Linux程序。

二、开机自启举例

1. 安装Linux程序(以redis为例,redis安装过程略)

如安装配置好redis,完成之后,如下语句可正常执行的情况下:

service redis-server start

2. 编写启动redis脚本

编辑 /etc/init.wsl 文件

sudo vim /etc/init.wsl

按键盘Insert键,输入以下内容

#! /bin/sh
service redis-server start

按键盘Esc键,输入“:”,输入wq!保存退出。

3. 编写Win10/Win11开机脚本

该脚本的目的是运行 Linux子系统中的脚本。具体方法如下:

按键盘Win+r 启动运行,输入shell:startup,转到Windows“启动”目录,新建文件wsl2run_Ubuntu_redis.vbs(文件名自命名,扩展名是vbs就行),并保存以下内容。

rem Msgbox "Win10开机自动启动wsl2的Ubuntu,并由其启动redis"
Set ws = CreateObject("Wscript.Shell")
ws.run "wsl -d Ubuntu-20.04 -u root /etc/init.wsl start", vbhide

注意:Ubuntu-20.04,后面是数字为版本号。vbhide可以不显示启动画面,后台启动。
Ubuntu启动后,会自动加载redis服务,所以Win10开机后,redis也就自动启动了。

4. 故障排除办法

如果出现运行不成功,多半是权限问题,可以在cmd窗口运行如下启动命令

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

如出现:

/etc/init.wsl: Permission denied

可手工启动Ubuntu-20.04,然后使用如下命令修改文件权限。

sudo chmod 777 init.wsl

再次运行启动命令

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

如出现以下提示,表示运行成功,则可以完成Win10/Win11自动启动redis了。

Starting redis-server: redis-server.

总结

至此,通过设置Win10/Win11开机后自动启动wsl2的Ubuntu,由Ubuntu自动启动init.wsl下内容就实现了文章开头说的事情。


扩展

如何给Win10/Win11安装Ubuntu?参考下文

【量化交易行情不够快?】一文搞定通过Win10 wsl2 +Ubuntu+redis+pickle实现股票行情极速读写_IT里的交易员的博客-CSDN博客_redis 量化
https://blog.csdn.net/popboy29/article/details/126189105

你可能感兴趣的:(Python经验池,linux,ubuntu,redis)