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
文件,添加如下内容:
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)