使用systemd作为WSL的初始化进程
注意:wslg可能将无法运行
由于启用了systemd,wslg将无法工作,如果您需要无缝使用Liunx图形软件,请参考这个文章
Linux 中的 systemd 是指什么?
根据 systemd.io:“systemd 是 Linux 系统的基本构建基块套件。 它提供一个系统和服务管理器,该管理器作为 PID 1 运行并启动系统的其余部分。”
Systemd 主要是一个 init 系统和服务管理器,它包括按需启动守护程序、装载和自动装载点维护、快照支持以及使用 Linux 控制组进行跟踪等功能。
大多数主要的 Linux 发行版现在都运行 systemd,因此在 WSL 上启用它可使体验更接近于使用裸机 Linux。
如何启用 systemd?
Systemd 现在是将使用 wsl --install
命令默认值安装的 Ubuntu 的当前版本默认值。
若要为 WSL 2 上运行的任何其他 Linux 发行版启用 systemd(更改默认值,使其不再使用 systemv init):
-
确保 WSL 版本为 0.67.6 或更高版本。 (若要检查,请运行
wsl --version
。若要更新,请运行wsl --update
或从 Microsoft Store 下载最新版本。) -
打开 Linux 发行版的命令行并输入
cd /
来访问根目录,然后输入ls
来列出文件。 你将看到一个名为“etc”的目录,其中包含发行版的 WSL 配置文件。 打开此文件,以便可通过输入nano /etc/wsl.conf
,使用 Nano 文本编辑器进行更新。 -
在 wsl.conf 文件中添加以下行,你现在已打开此文件来更改用于 systemd 的 init:
[boot]
systemd=true
- 退出 Nano 文本编辑器(Ctrl + X,选择 Y 来保存更改)。 然后,需要关闭 Linux 发行版。 可以使用 PowerShell 中的
wsl.exe --shutdown
命令重启所有 WSL 实例。
Linux 发行版重启后,systemd 将会运行。 可使用 systemctl list-unit-files --type=service
命令进行确认,这将显示与 Linux 发行版关联的任何服务的状态。