所有 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 支持。