让WSL开机启动

2023-12-16

上次分享了《WSL 2 上启用微软官方支持的 systemd》后,有博客园的读者评论说开启了SYSTEMD后,发现启动时间变慢了,询问有没有什么解决办法。

其实WSL启动时间变慢我也早有发觉,这个问题在我启用SYSTEMD前就已经存在。

WSL2会默认关闭不使用的实例,当你关闭了WSL的Console后,实例会自动关闭。在和Distrod的比较中,我提到过这样的产品设计的初衷,是为了减少计算机资源占用。

但是对于会频繁唤醒WSL的用户来说,确实会出现启动时间过长的情况。如果你的计算机资源比较充足,那么是可以在开机时通过VBS脚本启动一个 WSL 实例,让它挂起在那里不要休眠。

方法如下:

  1. WIN+R 运行 shell:startup 打开启动目录
  2. 在此目录中创建文件 wsl-startup.vbs
  3. 在 wsl-startup.vbs 中填充如下内容,Arch需替换为你使用的发行版名称。
set ws=wscript.CreateObject("wscript.shell")
ws.run "wsl -d Arch", 0

这样当你系统启动,登录系统后,Windows会开启 WSL 实例,它会永久等待输入,不会关闭。所以当你下次再使用WSL命令时,就不会遇到需要重新唤醒 WSL 的耗时。

如果你担心后台挂着WSL对系统资源占用过高,可以通过配置 .wslconfig 文件来限制 WSL 的资源占用。 WSL 会默认占用50%内存,最大8GB。使用所有CPU线程。我一般会限制到4GB,2线程。

配置方法如下:

notepad %USERPROFILE%\.wslconfig

[wsl2]
memory=4GB 
processors=2

Ref:
https://github.com/microsoft/WSL/issues/8854
https://askubuntu.com/a/1452424/911078
https://learn.microsoft.com/en-us/windows/wsl/wsl-config

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

让WSL开机启动 的相关文章

  • map(&:name) 在此 Ruby 代码中做了什么?

    为了更好地理解 Ruby 我在网上冲浪时遇到了以下代码 require rubygems require activeresource ActiveResource Base logger Logger new File dirname F
  • 如何更改 Android M 中拒绝/授予的权限?

    我怎样才能让用户有机会更改应用程序中的权限 他已经设置了授予 拒绝 假设用户拒绝了权限 稍后他希望我们授予此许可 是否可以 我怎样才能做到这一点 如果用户拒绝了该权限 您可以检查该权限 如果他也检查了不再显示 在这种情况下 您可以打开自己的
  • 基于范围的 for 循环中 range-init 的生命周期是多少?

    在最新的 C 标准中 它意味着 for foo bar baz 相当于 auto r bar for auto it r begin end r end it end it foo it baz 当上面的 bar 是一个返回集合的函数调用时
  • 带 Break 的无法到达语句

    所以我之前有一个问题 但意识到我发布了错误的违规代码 我已在下面标记了令人反感的言论 我想要做的是使用该 switch 语句设置每个运算符的优先级 也许有人可以指出我正确的方向 请注意 我正在运行 JAVA 7 因此 String Swit
  • boost::function 和 boost::bind 如何工作

    我不喜欢让魔术盒散布在我的代码中 这两个类到底是如何工作的 以允许基本上任何函数映射到函数对象 即使函数具有与我传递给的参数完全不同的参数集boost bind 它甚至适用于不同的调用约定 即成员方法是 thiscall在VC下 但 正常
  • SQL Access INSERT INTO 失败

    我正在尝试制作一个使用 OLEDB 连接到 Microsoft Access 数据库的 Visual Basic 应用程序 在我的数据库中 我有一个具有以下布局的用户表 ID Autonumber Username Text Passwor
  • 动态设置自动管道的参数值

    如果我创建一个参数 我可以在手动运行管道时设置其值 但是当管道自动运行时 它使用默认值 当管道自动运行时 例如响应推送到存储库 是否有任何方法可以向其传递参数值 这是我正在使用的 yaml 文件 目标是能够控制在管道中运行哪些测试 para
  • DataGridView 和 List<> 与 BindingSource 的数据绑定

    我想弄清楚数据如何绑定BindingSource应该可以工作 我想要一个DataGridView填充 a 的内容List lt gt 更新列表后 我可以看到List当我检查调试器时 增长并验证它是否被填充 我以为BindingSource当
  • 如何让 TFS 2010 检测对 Visual Studio 之外的文件所做的更改?

    我将 Team Foundation Server 2010 与 Visual Studio 2010 结合使用 每当我在 Visual Studio 之外修改文件时 TFS 似乎都没有检测到对文件所做的更改 因此不提供在修改文件后签入文件
  • 如何在 R 中正确嵌套 Paste() 函数?

    你能告诉我为什么吗 paste paste c first second collapse third collapse and 给我 first second third 代替 first second and third 获得第二个输出
  • 如何在Python中使用mysqldump和mysql复制数据库?

    我正在编写一个简单的 Python 脚本来复制 MySQL 数据库 我正在尝试根据以下问题及其答案复制数据库 不使用 mysqldump 复制数据库 python 子进程和 mysqldump and Python 子进程 mysqldum
  • Java中谷歌计算引擎与数据存储和云存储的通信

    我有 GAE 应用程序 它在 Google Cloud Datastore 中创建一些数据并将一些二进制文件存储到 Google Cloud Storage 让我们调用该应用程序WebApp 现在 我在 Google Cloud Stora
  • 静态上下文中的本地类实例创建表达式

    The JLS 15 9 2告诉我们如何确定封闭实例 令 C 为正在实例化的类 并令 i 为正在创建的实例 如果 C 是一个内部类 那么我可能有一个直接封闭的 实例 8 1 3 确定如下 如果 C 是本地类 则 如果 C 出现在静态上下文中
  • 詹金斯文本查找器无法成功我的构建

    我使用 SSH 插件在 Linux 服务器上运行命令 我使用 SSH 启动了一个脚本 该脚本需要超过 1 小时的时间才能运行 我不想等待那么多时间 所以我在 Exec 超时处设置了 30 秒的时间 但它显示错误 错误 发布时出现异常 异常消
  • 在 kubernetes 中使用 mongoose 连接到 mongodb

    我有一个使用 docker compose 开发和测试的微服务 现在我想将它部署到kubernetes 我的 docker compose 文件的一部分如下所示 tasksdb container name tasks db image m
  • 如何处理无法加载的页面并在 Watir-Webdriver 中继续测试

    我已经寻找其他问题的答案 但找不到 我的问题是 我有许多需要测试的结果 但当我点击不加载页面的 URL 时 我的脚本不断失败 以下网址无法加载 当此 URL 未加载时 我想继续测试 我尝试过使用 begin Timeout timeout
  • Java - Spark SQL DataFrame 映射功能不起作用

    在 Spark SQL 中 当我尝试在 DataFrame 上使用映射函数时 出现以下错误 DataFrame 类型中的方法 map Function1 ClassTag 不适用于参数 new Function 我也在关注 Spark 1
  • 还有比“打开类型”更好的选择吗?

    看来 C 不能switch在类型上 我收集的没有作为特殊情况添加 因为is关系意味着不止一种不同的case可能适用 除此之外还有更好的方法来模拟打开类型吗 void Foo object o if o is A A o Hop else i
  • 在 Cmake 中,如何在不清理目标文件的情况下使用新源文件更新 makefile

    我正在使用 cmake 我刚刚添加了新的源文件 我想将新的源文件包含在 cmake 生成的 makefile 中以包含在构建中 我尝试了rebuild cache但没有任何反应 Thanks 这取决于您的 cmake 文件是如何构建的 如果
  • 设置像素格式

    有人告诉我打电话getWindow setFormat PixelFormat XXXX 应将活动中窗口的像素格式设置为 XXXX 例如RGBA 8888 我试过打电话getWindow setFormat PixelFormat XXXX

随机推荐

  • cmd.exe 重定向运算符的顺序和位置

    首先关于顺序 以下作品用于重定向stdout and strerr to nul command 1 gt nul 2 gt 1 以下则没有 command 2 gt 1 1 gt nul 为什么顺序很重要 如何用人类可以理解的语言来解读这
  • 将 CSV 文件转换为 JSON 字典?

    我需要将大型 CSV 数据集转换为 JSON 但输出应该是这样的 JSON 字典 var products crystal description This is a crystal price 2 95 emerald descripti
  • 动态 UITableViewCell 高度

    我试图让我的单元格根据单元格中的文本量动态改变高度 目前我有文字换行 但是一旦单元格内容太多 如果它转到第三行 你看不到第二行之后的任何内容 这就是我到目前为止所拥有的 希望有人能看到我是否遗漏了什么或做错了什么 任何帮助将不胜感激 UIT
  • 如何在 Windows 上的 Jenkins 配置中设置 PATH 环境变量?

    当我在 Windows Server 2008 上运行构建过程时 它失败并显示如下错误消息 无法运行程序 foo CreateProcess error 2 系统找不到指定的文件 我已经在 Ubuntu Server 上遇到了类似的问题 并
  • AJAX ModalPopup 在页面内容后面(下方)弹出(负 z-index)

    我在 AJAX Control Toolkit 版本 40412 中遇到 AJAX ModalPopupExtender 问题 http ajaxcontroltoolkit codeplex com releases view 43475
  • 如何找到pandas中2个不同数据帧中2个点之间的距离?

    我有两个数据框 每个数据框都有一组坐标 Dataframe 1是生物量站点列表 坐标位于 lat 和 lng 列中 Dataframe 2是邮政编码坐标列表 链接到销售价格 坐标位于 pc lat 和 pc lng 列中 我用过这个计算器问
  • 需要将Ghostscript安装到Mac PATH

    Camelot 出现错误 未安装 Ghostscript 尝试了一切 问题是它没有添加到路径中 gs安装在机器上 Camelot 安装页面的以下检查失败https camelot py readthedocs io en master us
  • 如何在Python中打印不带空格的变量字符串(最少的编码!)[重复]

    这个问题在这里已经有答案了 我有类似的东西 print n id var1 var2 var3 var4 它为每个变量打印空格 1 john h johnny mba 我想要这样的东西 1 john h johnny mba 我有 20 个
  • XML 架构导致 xml 元素没有命名空间

    我在一个非常简单的模式上遇到了一些麻烦 在架构指定的 xml 正文中 根元素的第一个子元素被指定为具有 xmlns 这给我带来了验证问题 我反复搜索并尝试找出发生这种情况的原因 但没有取得任何成功 这对我的服务器代码造成了更大的问题 因为我
  • Hibernate 映射异常无法确定以下类型:java.nio.file.Path

    我有一张实体照片如下 Entity class Photo Path imagePath public Path getImagePath return imagePath setter 在这个实体中 我必须 nio Path 我怎样才能解
  • 向 ggplot 添加自定义颜色

    我的主要目标是在我的情节中对元素进行不同的着色 为此 我manually添加了一个额外的列 其中每个列都有所需的颜色category mtcars color mtcars carb 4 F98866 mtcars color mtcars
  • BigQuery 删除表列 - DDL 错误

    通过以下方式从表中删除列后 ALTER TABLE MyTable DROP COLUMN IF EXISTS MyColumn 在 BigQuery UI 中 我可以看到该列已成功删除 并且无法查询特定列 但是当我查询 DDL 时 我可以
  • Excel - 从一列中返回多个匹配值,水平排列在一行中

    我有一个 Excel 公式 它应该可以工作 但返回 VALUE 我不明白为什么 我有这张表 A B 1 2 Oranges 1 3 Apples 2 4 Grapes 3 5 Oranges 4 6 Apples 5 7 Grapes 6
  • Windows Azure - 在网站和虚拟机之间进行通信,无需启用外部/远程访问

    我是 Azure 新手 已经设置了一个 Asure 网站 该网站将连接到 Azure VM 上的 SOLR 实例 除非我创建端点 否则该网站无法与 SOLR 端口 8080 通信 为了创建一个端点 我需要提供一个内部和external端口
  • 如何在 JavaScript 中存储字节数组

    我将在 Javascript 中存储大量字节值 很可能超过一百万 如果我使用带有普通数字的普通数组 则需要 8 MB 因为数字存储为 IEEE 双精度数 但如果我可以将其存储为字节 则只需 1 MB 由于显而易见的原因 我想避免浪费那么多空
  • 使用任意位数的小数位格式化 SQL 数字查询结果

    我有一个包含这两列的数据库表 金额 数字 18 0 小数位数 数字 18 0 该表可以存储各种货币的金额 并从金额中删除小数位 我无法更改此数据模型 例如 可能有这样的两行 1290 2 这是 12 90 英镑 需要显示为 12 90 34
  • 比较两个不同图像的像素,花费的时间太长

    我想比较两个不同图像的像素 我正在将第一张图像的像素与第二张图像的所有像素进行比较 这是我的代码 for int i 0 i lt bitmap getWidth i for int j 0 j lt bitmap getHeight j
  • CMake 和 Boost

    我查了一下 发现很多人都有同样的问题 但没有解决办法 我正在使用 CMake 为 MinGW 生成 Makefile 编译时出现错误 CMakeFiles boosttest dir objects a main cpp obj main
  • Android Cipher 加密/解密

    我正在使用密码来加密和解密消息 public String encrypt String string throws InvalidKeyException IllegalBlockSizeException BadPaddingExcep
  • 让WSL开机启动