You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过WSL配置文件实现启动时自动运行指定脚本?

解决WSL启动脚本不执行的问题

问题排查与修复步骤

1. 清理重复配置,选择正确的配置文件

.wslconfig(Windows端全局配置)和/etc/wsl.conf(分发版内配置)同时设置boot.command会导致冲突,建议只保留分发版内的配置:

  • 删除C:\Users\reynadan\.wslconfig中的[boot]段落,或者用#注释掉相关内容。
  • 确保/etc/wsl.conf的配置唯一且正确:
    [boot]
    command=bash /home/reynadan/scripts/startup.sh
    

2. 给脚本添加可执行权限

WSL启动时无法执行无权限的脚本,执行以下命令赋予权限:

chmod +x /home/reynadan/scripts/startup.sh

3. 修正脚本中的权限问题

/etc/wsl.conf的boot.command是以root用户执行的,脚本中无需再用sudo调用dockerd,否则会因无交互输入密码而失败:
修改脚本中的Docker启动部分:

# 原代码
sudo dockerd > /dev/null 2>&1 &

# 修改为
dockerd > /dev/null 2>&1 &

4. 确保wsl.exe调用正常

root用户环境下可能无法直接找到wsl.exe,建议改用绝对路径调用:
修改脚本中启动wsl-vpnkit的部分:

# 原代码
wsl.exe -d wsl-vpnkit service wsl-vpnkit start

# 修改为
/mnt/c/Windows/System32/wsl.exe -d wsl-vpnkit service wsl-vpnkit start

5. 手动测试脚本是否正常

先手动执行脚本,验证功能是否正常:

bash /home/reynadan/scripts/startup.sh

检查/home/reynadan/wslBootHistory.txt是否生成日志,并用ps aux | grep dockerd确认Docker是否启动,排查脚本本身的逻辑问题。

6. 验证配置生效

执行wsl --shutdown,等待10秒后重启WSL,再次检查日志文件和Docker状态。

内容的提问来源于stack exchange,提问作者Reynadan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 16:20:38