WSL2 现已支持 Systemd

2022-09-22 12:36:06 +08:00
 charlieethan

根据微软的官方博客: https://devblogs.microsoft.com/commandline/systemd-support-is-now-available-in-wsl ,在最新版的 WSL2 中已经支持了 Systemd ,升级的方法如下(以 Windows 商店内的 Ubuntu 发行版为例,Windows 版本为 Windows 11 22H2 ):

如果第一行显示为 WSL version: 0.67.6.0 ,则已升级到支持 systemd 的版本

sudo cat > /etc/wsl.conf <<EOF
[boot]
systemd=true
EOF
11025 次点击
所在节点    Windows
58 条回复
onikage
2022-09-22 14:54:27 +08:00
现在 ip 能固定了吗?
urzz
2022-09-22 15:26:12 +08:00
终于支持 systemd 了,不容易啊。。
不过我碰到 wslg 打开 idea ,过段时间就假死的问题,被迫弃了 wsl2 ,另外 wsl2 的固定 ip 是不是还不支持
cco
2022-09-22 16:19:34 +08:00
❯ wsl.exe --update
正在检查更新。
已安装最新版本的适用于 Linux 的 Windows 子系统。
❯ wsl --version
WSL 版本:0.66.2.0
内核版本:5.15.57.1
WSLg 版本:1.0.42
MSRDC 版本:1.2.3401
Direct3D 版本:1.606.4
DXCore 版本:10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows 版本:10.0.22000.978
kid740246048
2022-09-22 16:59:03 +08:00
@onikage #21
@urzz #22
0.51.2 版本以上可以桥接网卡,配合路由器设置可以固定 ip
https://github.com/microsoft/WSL/issues/4150#issuecomment-1018524753
jdz
2022-09-22 17:04:58 +08:00
@kindjeff podman 比 docker 有哪些优势么用起来
xwcs
2022-09-22 17:06:54 +08:00
更新后无法在 wsl2 中调用 windows 程序了
WSL 版本:0.67.6.0
内核版本:5.15.62.1
WSLg 版本:1.0.44
MSRDC 版本:1.2.3401
Direct3D 版本:1.606.4
DXCore 版本:10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows 版本:10.0.22000.978
![]( https://files.catbox.moe/x5ziag.png)
xwcs
2022-09-22 17:19:40 +08:00
xwcs
2022-09-22 17:38:20 +08:00
开启这个 systemd 之后的话是无法调用 Windows 程序了,慎用
LifStge
2022-09-22 17:50:01 +08:00
用的 win10 其实吧 写个脚本 win 下添加个计划任务 还不错呢...
phenixc
2022-09-22 18:02:53 +08:00
@andyskaura beta 版本支持桥接了
phenixc
2022-09-22 18:03:26 +08:00
@onikage beta 版本支持桥接了
kindjeff
2022-09-22 19:16:44 +08:00
@jdz #25

没有 daemon 就是个很大的优势,装好了直接用,不用起一个后台程序;也不用管什么 root 权限、docker 用户组的事情,当前用户就能用

然后 cli 几乎完全兼容,alias docker=podman 就可以

docker-compose 有 podman-compose 这样的兼容工具

他官方吹的写 k8s pod deploy yaml 在我看来几乎没有用,最重要的滚动更新用不成,还是用 compose 顺手
billlee
2022-09-22 19:24:27 +08:00
@jdz 没有 daemon 还有一个优势就是,容器进程就是 podman 命令的子进程,很容易监控容器的存活状态
zhhww57
2022-09-22 20:00:07 +08:00
之前都是自己 fake 一个 systemd ,或者弄 sysvinit ,这也是我讨厌 systemd ,而喜欢 sysvinit ,openrc 之类的原因,chroot ,proot ,wsl ,docker 之类的总是 init 系统一堆问题,后来干脆自己弄了个 fake 版本的 systemd ,直接导入自己的源,安装这个替换掉原版 sstemd ,然后 systemctl 的时候带了个解析器,自动解析 service 格式的服务,然后启动
jdz
2022-09-22 22:23:54 +08:00
@kindjeff vscode 可以远程么。类似远程 docker container
lambdaq
2022-09-22 22:39:08 +08:00
wsl2 不是虚拟机么。之前为啥不支持?
Noicdi
2022-09-22 22:48:30 +08:00
Windows 11 22H2 ,wsl --update 后的版本为 0.66.2.0 ,store 中 wsl preview 版本也是如此,够不到 0.67.6 ,看来暂时无缘了。
dingwen07
2022-09-22 22:55:10 +08:00
非 Insider 用户从这里下载 Preview:
https://github.com/microsoft/WSL/releases
0attocs
2022-09-23 02:06:49 +08:00
@lambdaq #28 为了更方便地处理 wsl 的特殊需求吧。wsl2 是一个运行 linux distro container 的 host vm ,本来用的是微软自己的(多个) init binary 。除了 pid 1 的 init 之外,其他的 init 用来管理 linux distro containers ,跑 9p server ,处理 linux 和 windows binary 的互操作之类的。
Dragonphy
2022-09-23 09:16:21 +08:00

@xwcs #28 可以调用 Windows 程序

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/882117

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX