在 Windows 上重新启动 Ubuntu 而不重新启动 Windows?

在 Windows 上重新启动 Ubuntu 而不重新启动 Windows?

是否可以在不重新启动系统的情况下重新启动 Ubuntu 子系统?

在安装一些更新后,我尝试使用该shutdown命令,但这似乎不是一个选项。

WSL。需要重新启动。无法关闭系统

截图文字:

~$ bin/rcheck.sh
Reboot required.
~$ sudo shutdown -r now
shutdown: Unable to shutdown system

答案1

您无法使用单个命令重启发行版。您必须使用两个命令关闭并启动发行版。如果您运行wsl.exe而不是wsl,那么它在 WSL Bash 和 CMD 中都可以运行。

查看发行版列表及其当前状态:

wsl.exe -l -v

关闭一切: Build 18917+

wsl.exe --shutdown

终止特定发行版: Windows 1903+

wsl.exe -t <DistroName>

启动默认发行版(标有*):

wsl.exe

启动特定的发行版:

wsl.exe -d <DistroName>

旧版本

# PowerShell (admin)
Restart-Service LxssManager

# or CMD (admin)
net stop LxssManager
net start LxssManager

在此处输入图片描述

答案2

在管理 PowerShell 提示符下:Restart-Service LxssManager

答案3

自 Windows 10 版本 1803 起,关闭所有 WSL 终端窗口不会默认终止后台进程,除非该文件/var/run/reboot-required存在。当更新需要重新启动时,此文件将由 Ubuntu 上的 apt 自动创建,但如果您想手动重新启动子系统,您可以自己创建该文件:

sudo touch /var/run/reboot-required

我还没有在 Microsoft Store 上提供的其他发行版上测试过这一点。另一种解决方案是自行终止所有进程:

sudo killall -r '.*'

答案4

以下允许使用命令 wslreboot(或任何自定义命令)从 WSL2 内部关闭。

技术上wslshutdown更适合下面的代码:

创建别名:

sudo nano ~/.bash_aliases

添加行:

alias wslreboot='history -a && cmd.exe /C wsl --shutdown'

history -a确保在关机之前保存 bash 命令历史记录。

启用别名:

重启 WSL

cmd.exe /C wsl --shutdown

或输入

source .bash_aliases

使用

现在你可以输入

wslreboot  

去关机


我认为您可以使用上述方法的变体来运行包含以下行的批处理文件:

wsl --shutdown
wsl

以便正确重启。

相关内容