从控制台重新启动 WSL

ZEE*_*ZEE 11 reboot windows-subsystem-for-linux

如何从 WSL 控制台重新启动当前的 WSL 实例?

通常的“嫌疑人”不起作用:

reboot
shutdown -r
Run Code Online (Sandbox Code Playgroud)

他们失败并显示以下消息:

System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
Run Code Online (Sandbox Code Playgroud)

还有其他方法可以强制 WSL 重新启动吗?

sse*_*taH 11

您需要通过 Windowscmdpowershell使用以下命令来执行此操作:

> wsl --shutdown
Run Code Online (Sandbox Code Playgroud)

如果您有大量实例并且需要关闭特定实例或发行版,您可以使用;

> wsl -l -v
Run Code Online (Sandbox Code Playgroud)

查看发行版名称、状态(无论是运行还是停止)和版本wsl并使用

> wsl -t NAME
Run Code Online (Sandbox Code Playgroud)

  • 我知道并使用所有这些选项...甚至还有一种“硬”方法,即终止托管 WSL 的 Windows 服务...我正在寻找(并且我认为是明确的)是一种重新启动内核的方法从 WSL 内部演示一个用例...假设您有一个在 WSL 下运行的脚本,并且您想从该脚本重新启动... (2认同)