WSL2中Ubuntu开机自动执行命令的方法

{{ time }}

Step1 在Ubuntu运行如下指令, 编辑一个脚本

sudo vim /etc/init.wsl

Step2 在vim编辑器中按i键, 进入编辑模式

->在这个init.wsl中添加您开机要运行的指令

好比我想开机自动运行宝塔面板, 就像下面这么写

#! /bin/sh
bt start
#注: 因为wsl2中的ubuntu不能自启软件, 所以才这么高;然后你发现宝塔自启后, php和nginx等服务还是不会自启, 可以把相应服务的启动指令同样放在这里来解决

->按esc键 ->左下角输入"!wq"保存该脚本并退出vim

Step3 给该脚本添加执行权限, 指令如下

sudo chmod +x /etc/init.wsl

Step4 在Win10下, 新建文本文档, 内容如下

Set ws = WScript.CreateObject("WScript.Shell") 
ws.run "wsl -u root /etc/init.wsl"

-> 将该文本文档命名为 linux_start.vbs

Step5 在Win10下, 按Win键+R键

-> 在"运行"中输入

shell:startup

并回车

-> 把linux_start.vbs拖到这个"启动文件夹里"

这样那些程序在Win10启动时, 就会在Ubuntu中自动执行啦

以上, 曾实例化于Win10 Ver2004 + WSL2 / Ubuntu20.04