最新消息:本站介绍:国外VPS、云服务器,海外服务器,一手资源推荐平台

微软为Linux的Windows子系统添加了“systemd”

网络安全 快米云 来源:快米云 119浏览

网络管道中的 Linux TUX

Microsoft 和 Canonical 联手为 Linux 的 Windows 子系统添加了 systemd 支持,从而允许安装更多兼容的应用程序。

systemd 是一个 Linux 软件应用程序,它充当系统和服务管理器,用于在操作系统启动期间初始化守护程序/服务。Systemd 还支持允许 Linux 管理员在启动后轻松管理和控制这些服务的工具。

由于 systemd 负责启动所有其他服务,因此它作为 Linux 内核在启动时创建的第一个进程 (PID 1) 运行。然后所有其他初始启动服务都由 systemd 启动和管理,如下面的 Ubuntu 进程树所示。

Ubuntu 中的 PSTree
Ubuntu 中的
PSTree 来源:ZZQIDC

由于 WSL 目前使用 init 作为系统和服务管理器,因此需要 systemd 的 Linux 应用程序(例如 Snap、microk8s (Kubernetes) 和 systemctl)无法正常工作。

WSL 作为系统和服务管理器运行 init
WSL 作为系统和服务管理器运行 init
来源:ZZQIDC

WSL 现在支持 systemd

昨天,微软和 Canonical 宣布,Windows 11 Insider 版本中适用于 Linux 的 Windows 子系统的最新预览版现在支持 systemd,允许您安装需要服务管理器的应用程序。

“支持 systemd 需要对 WSL 架构进行更改。由于 systemd 需要 PID 1,因此在 Linux 发行版中启动的 WSL init 进程将成为 systemd 的子进程,”微软的 Craig Loewen 在新公告中解释道。

“因为 WSL 初始化进程负责为 Linux 和 Windows 组件之间的通信提供基础设施,所以改变这种层次结构需要重新考虑使用 WSL 初始化进程所做的一些假设。”

wsl --update 如果您正在运行 Windows 11 Insider 版本,则可以使用该命令升级到 WSL 0.67.6 预览版或更高版本 。更新完成后,您可以使用命令检查您安装的版本wsl --version,如下所示。

升级 WSL 并检查其版本
升级 WSL 并检查其版本
来源:ZZQIDC

您现在需要通过启动所需的 WSL Linux 发行版并将以下行添加到/etc/wsl.conf 来启用 systemd:

[boot]
systemd=true

由于 /etc 文件夹归 root 所有,您需要使用 sudo 和您喜欢的控制台编辑器来编辑文件。例如,sudo vi /etc/wsl.conf

应该注意的是,对于您希望启用 systemd 的每个发行版,都需要执行此过程。

wsl.exe --shutdown现在关闭您的 WSL 发行版窗口,并从 Windows 11 命令行(命令提示符或 PowerShell)中,使用该命令关闭您的 WSL 发行版 。

再次启动您的 Linux 发行版,您将看到 systemd 作为 PID 1 运行,表明它正在作为 WSL 的服务和系统管理器运行。

WSL 中的 PSTree 显示 systemd 以 PID 1 运行
WSL 中的 PSTree 显示 systemd 以 PID 1 运行
来源:ZZQIDC

有关 systemd 如何在 WSL 中工作以及它如何使您能够在 WSL 中运行更多应用程序的更多信息,您可以观看 Microsoft 的 Craig Loewen 和 Canonical 的 Oliver Smith 的此视频。

转载请注明:VPS资讯_海外云服务器资讯_海外服务器资讯_IDC新闻 » 微软为Linux的Windows子系统添加了“systemd”