以前折腾了很久的 genie 和 distrod 来实现 wsl2 上的 systemd 。现在微软和Canonical联合声明发布了官方支持的systemd , 之前的折腾貌似有点浪费时间了 。如果微软不发布这个systemd的解决方案 , 本文的主题可能是去对比 genie 和 distrod 了 。
在安装体验后 , 个人感觉官方支持的systemd确实比上述两个开源项目体验更佳 。很值得有需要在wsl环境中运行docker、nginx、mysql等后台服务的小伙伴来尝鲜 。
和genie的对比genie的使用通过genie -s
进入运行着systemd的bottle环境 , 通过genie -u
退出 , 此处需要手动处理或额外配置~/.bashrc
。但通过wsl直接运行的shell命令默认又不是位于systemd的bottle之中 , 这为vscode使用带来了一些问题 , 需要额外处理: 1. code命令找不到 , 2. vscode server 未运行在bottle中
此外genie首次运行时 , 会需要等待240秒并显示出无法启动的service , 用户需要手动禁用这些有问题的service , 才能再下次运行时正常使用 。试图通过配置缩短等待时间 , 发现只是徒劳 。
总体而言genie的使用还是较为复杂的 , 使用前需要完整阅读wiki 。相比之下官方支持的systemd的使用更为简单 。通过简单配置后 , 是开箱即用 , 用户无感的 。这一点genie无法媲美 。
和distrod的对比distrod直接修改了你的默认shell , 运行时也是开箱即用 。distrod基于ruby编写运行性能很好 , 运行也很稳定 。它还支持基于lxc社区镜像安装多个发行版 , 且都经过了测试 , 如:centos / alma / arch / fedora / debian / ubuntu 等等 。
而官方支持的systemd还是有一点时优于distrod的 , 那就是启用了官方systemd的wsl2实例 , 在用户停止操作后 , 会自动关闭 , 和未启用systemd 时的特性一样 , 这有利于节约电脑的计算资源 。
如何安装和使用微软官方支持的 systemd启用最新的wsl systemd特性前 , 可先阅读微软和Canonical提供的文档:https://devblogs.microsoft.com/commandline/systemd-support-is-now-available-in-wsl/https://ubuntu.com/blog/ubuntu-wsl-enable-systemdhttps://devblogs.microsoft.com/commandline/a-preview-of-wsl-in-the-microsoft-store-is-now-available
如果需要使用微软官方支持的systmed , 在目前来说你需要满足这些前置条件:
- 操作系统为windows 11
- wsl 版本为 0.67.6 或以上 。
wsl --version
, 如果此命令未正常回显版本号 , 或版本号低于0.67.6 , 那么你安装的wsl还不支持systemd 。截至2022/9/30 , wsl 0.67.6及以上版本还是预览版本 , 如果你是Windows Insiders用户 , 那么可以通过 https://aka.ms/wslstorepage 链接跳转到微软应用商店来安装最新版本的 wsl preview 。如果你未加入Windows Insiders计划 , 那么可以通过 https://github.com/microsoft/WSL/releases 下载最新的preview版本(0.68.2)来进行体验 。
安装后 , 可以通过以下命令进行更新:
wsl.exe --update --web-download
。此命令是在0.67.6版本中新增的 。安装好新版wsl后 , 通过以下命令来配置wsl启用 systemd:
echo -e "[boot]\nsystemd=true" | sudo tee -a /etc/wsl.conf
配置后需要通过wsl --shutdown
命令关闭wsl , 来进行wsl的完整重启 。如何判断systemd是否启用成功判断wsl是否已启用systemd , 可通过以下命令查看:
经验总结扩展阅读
- 今年中秋国庆休八上七,国庆节放假2023年放假调休
- 广州海心桥从哪里上桥
- 和平精英ss5上分技巧
- 十年老粉是什么梗
- 创死我了是什么梗
- 上海浦东机场停车费怎么算
- 职场水母是是什么梗
- 青明上河图画的是哪里
- 漯河最大的农贸市场在哪里
- 抖音小熊跳舞bgm是什么