无法在 WSL 中运行任何 systemd 服务

无法在 WSL 中运行任何 systemd 服务

所有 systemd 命令均无法在 WSL(Ubuntu Bash 18.04)中运行。当我运行时sudo systemctl is-active kubelet,错误是 output: System has not been booted with systemd as init system (PID 1). Can't operate. : running command: sudo systemctl is-active kubelet

如何在 WSL 中启用 systemd 功能?如何摆脱System has not been booted with systemd

答案1

cron是一项systemd您仍可以在 WSL 中运行的服务。请参阅此答案作为如何设置kubelet应用程序的指南:

要扩展此链接,你可以修改 Windows 启动以在最小化后台服务的情况下加载 WSL:

答案2

现在你可以尝试:

sudo service docker start

当使用 WSL2 时,如果您运行的是 Windows 2004 或更高版本(我假设)。

答案3

要在 WSL2 中运行 systemd,请克隆以下 repo:

git clone https://github.com/DamionGans/ubuntu-wsl2-systemd-script.git

运行克隆的脚本:

cd ubuntu-wsl2-systemd-script
bash ubuntu-wsl2-systemd-script.sh

重新启动 Ubuntu shell,然后尝试运行命令systemctl以确保 systemd 正常工作。

答案4

有一个很酷的解决方法可以在 WSL 中启用 systemd。对我有用。请参考这里

此外,对于 Docker,请确保安装了它的最新版本,并且 WSL2 至少在 Windows 版本 2004 上运行。还请确保在 Docker 设置中启用 WSL2 支持。

相关内容