Windows wsl2支持systemd

发布时间 2023-04-12 17:05:19作者: ministep88

 

systemd

在较新的Linux系统上,都使用systemd 管理进程,成为系统的第一个进程(PID 等于 1),其他进程都是它的子进程。

systemd为系统启动和管理提供了完整的解决方案。它提供了一组命令。字母d是守护进程(daemon)的缩写。

init

WSL2 的发行版均拥有微软提供的 init,它是一种 systemd 的替代方案,不支持 systemctl 命令,

WSL2 本身是由 Windows 负责运行的,因此使用 tree 或 ps 命令时会看到根进程不是 systemd,这将导致无法启动 Linux 系统服务的守护进程 (deamon)。

当我们执行 systemctl 命令的时候,会显示出我们的 init system (PID 1) 并非 systemd,而是微软提供的 init。

 

在网上找到很多种支持的方法,最简单的就是微软官方提供的方法,仅需要添加一个配置文件即可。

1、打开PowerShell命令行,更新WSL。

wsl --update

2、打开Ubuntu 22.04,在 /etc目录新建wsl.conf文件,添加如下内容:

[boot]
 
systemd=true

3、关闭Ubuntu窗口。

4、打开PowerShell命令行,重启WSL。

wsl --shutdown

5、重新在Windows Terminal中打开Ubuntu发行版,输入如下命令检查是否成功:

systemctl

 

参考:

[Windows wsl2支持systemd_程序航的博客-CSDN博客](https://blog.csdn.net/qq_37770674/article/details/129223003)

[GitHub - DamionGans/ubuntu-wsl2-systemd-script: [不再工作!] 在当前 Ubuntu WSL2 图像上启用 systemd 支持的脚本](https://github.com/DamionGans/ubuntu-wsl2-systemd-script)

[解决wsl2不支持systemd管理服务的问题 - demo](https://www.zoand.com/p/104)