一、什么是systemd
Systemd 是 Linux 系统的一套基本构建块。 它提供了一个以 PID(进程标识符)为1 运行并启动系统其余部分的系统和服务管理器。
许多流行的发行版默认运行 systemd,例如 Ubuntu、Debian 等。
一些命令如snap、systemctl等依赖于systemd
二、wsl如何实现systemd
WSL 使用自己的初始化进程作为 PID 1。但是,由于 systemd 需要作为 PID 1 运行,因此必须修改 WSL 架构,以使 systemd 成为 PID 1,并使 WSL 的初始化进程成为 systemd 的子进程。这种更改涉及重新考虑 WSL 初始化进程的一些假设,并对其进行修改以确保与 systemd 的兼容性和正确的关闭。
为了谨慎起见,对于已存在的 WSL 发行版,用户需要明确选择启用 systemd。这意味着现在用户需要手动选择是否为特定的 WSL 发行版启用 systemd。这就是为什么我们目前无法直接在wsl上使用systemd
三、如何在wsl使用systemd
1.版本要求
首先,你要确保你的wsl版本大于0.67.6
使用wsl --version来查看wsl版本
2.设置配置
将这两行添加到 /etc/wsl.conf :sudo vim /etc/wsl.conf,这个配置告诉 WSL 在启动时启用 systemd
[boot]
systemd=true
3.重启wsl实例
退出wsl,在powershell中使用wsl --shutdown重启wsl实例,然后重新打开wsl就可以使用systemd了