我正在使用 WSL2。
当我运行代码时:
systemctl start ssh
或其中的任何命令systemctl
,它显示
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
答案1
WSL 不使用 systemd 作为启动发行版的 init 系统。部分原因是 systemd 通常会启动许多 WSL 不需要且在 WSL 上下文中没有意义的服务(例如挂载其他文件系统的服务),因此 WSL 使用自己的 init 系统。
systemctl
正如您所看到的,如果 systemd 不是启动操作系统的 init 系统,则不能用于启动服务。解决方案是使用更便携的service
命令:service ssh start
。这通常适用于基于 Debian 的发行版,其中服务描述并不总是作为 systemd 初始化脚本提供。 Kali 就是这样的一个发行版。
该service
命令也适用于其他发行版,但许多基于 Red Hat 和 Fedora 的发行版除了 systemd 单元外不提供任何内容,因此虽然该service
命令在使用 systemd 时可以工作,但当 systemd 不可用时,没有其他脚本可供使用。未启用,在这种情况下您无法启动服务,除非手动启动。