WSL Ubuntu 挂起,如何重启?
Posted
技术标签:
【中文标题】WSL Ubuntu 挂起,如何重启?【英文标题】:WSL Ubuntu hangs, how to restart? 【发布时间】:2018-07-02 14:07:45 【问题描述】:有时 WSL 在 Windows 10 上挂起。打开“Ubuntu”bash 只是挂起。有什么方法可以在不重启 Windows 的情况下重启 WSL?
【参考方案1】:我相信当今 WSL2 最有效的方式,在 Cmd Prompt / PowerShell 中:
wsl --shutdown
【讨论】:
这对我不起作用,因为所有wsl
命令都开始挂起。
这对我有用,谢谢。【参考方案2】:
要扩展 kev 的答案,您需要重新启动 LxssManager
服务。这可以通过使用CTRL
SHIFT
ESC
打开任务管理器,转到Services
选项卡,找到LxssManager
服务,右键单击并选择Restart
来完成。
【讨论】:
我在 WSL2 中找不到该进程 LxssManager :( 对我不起作用。 LxssManager 进入“Stopping”状态并挂在那里,不会启动。 @LuigiPlinge 尝试找到对应的进程并停止。这对我有帮助。 @LuigiPlinge 只需右键单击并在停止时选择开始 @LuigiPlinge 无论如何都不会启动,它会一直停止【参考方案3】:您可以使用wslconfig
(在 Windows 命令提示符或 PowerShell 中)关闭 Ubuntu:
wslconfig /t Ubuntu
它会在你下次打开 shell 时自动启动。
【讨论】:
我们在 ubuntu 的终端中执行此操作? @LachezarRaychev 您应该在 Windows 命令提示符下发出上述命令。您可以发出“wslconfig /L”来列出所有已注册的发行版,从那里获取发行版名称,然后使用“wslconfig /tUbuntu
更改为Ubuntu-20.04
,因为这就是我的发行版的调用方式。我通过运行 wslconfig /l
查看可用的发行版找到了它。
对我来说 wslconfig 也被冻结了【参考方案4】:
关闭windows-service Lxss-Manager
【讨论】:
【参考方案5】:以管理员权限打开powershell
,然后输入以下命令重启lxxsManger
:
Get-Service LxssManager | Restart-Service
【讨论】:
【参考方案6】:进入windows设置->应用和功能->选择你安装的ubuntu->点击高级选项(可能需要稍等)->终止
【讨论】:
【参考方案7】:假设您的 wsl 分发名称是 Ubuntu
。
您可以在Command Prompt
(cmd) 中使用wsl
命令来查找分发名称并终止/关闭/重新启动特定分发。
重启意味着你关闭你的wsl发行版并重新启动它。
-
打开cmd。
使用
wsl -l
或wsl --list
列出/显示所有已安装的发行版。它会给你这样的输出。 (Default)
不是名称的一部分,只是一个标记。
Windows Subsystem for Linux Distributions:
Ubuntu (Default)
Ubuntu-20.04
Ubuntu-18.04
-
使用
wsl -t
或wsl --terminate
之类的方式终止/关闭您想要的分发
wsl --terminate Ubuntu
下次打开它会自动启动。
【讨论】:
【参考方案8】:在 windows 命令提示符下,发出 wslconfig /L 以查看已注册发行版的列表。
C:\Users\Manoj>wslconfig /L
Windows Subsystem for Linux Distributions:
Ubuntu-16.04 (Default)
现在发出 wslconfig /t
C:\Users\Manoj>wslconfig /t Ubuntu-16.04
然后您可以看到 Ubuntu 实例被终止。
manoj@Manoj-Laptop:~$ The Windows Subsystem for Linux instance has terminated.
Press any key to continue...
希望这会有所帮助。
【讨论】:
【参考方案9】:试试这些步骤:
-
在“开始”菜单中,搜索“打开或关闭 Windows 功能”
取消选中“适用于 Linux 的 Windows 子系统”,保存更改,然后重新启动计算机
选中“适用于 Linux 的 Windows 子系统”,保存更改,然后重新启动计算机
您的 WSL 现在应该可以工作了。
我不能因为这个答案而受到赞扬。 Please give credit to this person and to the person(s) who had originally shared this information.
更新 (8/23/21): 作为补充说明,我建议在关闭 VS Code 之前断开 WSL 与 VS Code 的连接。虽然这有点乏味,但根据我的轶事经验,我发现执行此额外步骤可以降低发生挂起问题的可能性。
【讨论】:
这花了我 3 次重启:D @Pavindu 你每次重启的目的是什么?提供的步骤应该只涉及两次重新启动。 这是该线程中唯一对我有用的解决方案。【参考方案10】:虽然其他解决方案也能正常工作,但我喜欢这个适用于 Windows PowerShell 或 cmd 的简洁命令:
wsl -t Ubuntu
要查看安装了哪些发行版,您可以运行wsl -l
。
【讨论】:
【参考方案11】:对我有用的是以管理员权限启动任务管理器,并通过右键单击任何现有列在“进程”列中启用命令行。然后找到前面有空行的Service Host。展开它并查看它是否包含 LxssManager。如果是这样,则通过右键单击并单击结束任务来终止它。然后启动 WSL,它就会工作。
【讨论】:
您还可以通过匹配“服务”选项卡中的“PID”(进程 ID)列来找到正确的进程。【参考方案12】:我有时也有这个问题。我只需按 Ctrl+C 即可恢复“正常”
【讨论】:
这只是部分正确。 ctrl-c 停止当前正在运行的进程。但是,当进程忽略此请求时,即使这样有时也不起作用。【参考方案13】:如果您尝试在服务中停止 LxssManager 并且它只是更改为“正在停止”状态并永远挂起(无法重新启动、停止、暂停全部显示为灰色):
通过以管理员身份进入任务管理器,显示“命令行”列,然后在列表中找到所有具有空命令行的“svchost.exe”(没有参数,没有 exe),只是盲目地杀死它们并希望最好。
然后刷新服务,LxssManager 然后显示为已停止。右键开始,又可以使用wsl.exe了。
【讨论】:
以上是关于WSL Ubuntu 挂起,如何重启?的主要内容,如果未能解决你的问题,请参考以下文章
WSL2:为啥我必须在重启 PC 后关闭 WSL 才能重启 WSL
如何在 WSL 中安装多个单独的 Ubuntu 实例? [关闭]
如何从 WSL (Ubuntu) Bash 运行 Windows 可执行文件