Windows 10中如何恢复卡住的cmd.exe及受影响的WSL bash窗口?
Windows 10中如何恢复卡住的cmd.exe及受影响的WSL bash窗口?
这种情况真的很闹心——后台进程明明还在正常运行,可对应的cmd或WSL bash窗口却僵住没反应,点不动也操作不了,一关闭还会把进程也杀掉。结合你描述的“内存不足半崩溃后出现、仅shell窗口受影响”的情况,我整理了几个可行的恢复方法,你可以逐一尝试:
方法一:重启控制台宿主进程
你猜测是“shell host”出问题完全没错,Windows里cmd和WSL bash窗口依赖的核心宿主进程是conhost.exe(Win10早期版本)或OpenConsole.exe(Win10后期及以上版本)。操作步骤如下:
- 打开任务管理器(按
Ctrl+Shift+Esc快速唤起),切换到「详细信息」标签页; - 找到对应卡住窗口的
conhost.exe/OpenConsole.exe进程(可以通过进程的“窗口标题”或者关联的父进程来区分,别选错其他正常窗口的进程); - 右键点击该进程,选择「结束任务」,之后观察卡住的窗口是否会自动恢复响应,或者重新弹出可用的窗口。
方法二:用工具将进程转移到新窗口
如果重启宿主进程没用,可以尝试用第三方工具把后台运行的进程“接管”到新窗口中:
- Windows Terminal:如果你已经安装了Windows Terminal,可以打开它,然后在命令行中执行
wt -p "Command Prompt" --attach <PID>(把<PID>替换成卡住窗口里运行的进程的PID,PID可以在任务管理器的详细信息里找到),尝试将进程绑定到新的Terminal窗口; - Process Hacker:这是一款功能更强大的进程管理工具,安装后找到目标后台进程,右键选择「启动新控制台」,就能尝试把进程转移到新的可操作窗口中;
- ConEmu:老牌终端工具,它的「Attach」功能也可以识别并接管运行中的控制台进程,操作起来很直观。
方法三:WSL窗口专属恢复方案
针对WSL bash窗口,还有一个专门的命令行工具可以解决:
- 先打开一个正常的新WSL窗口;
- 执行
sudo apt install reptyr安装reptyr工具(如果还没装的话); - 用
ps aux命令找到卡住的bash进程的PID; - 执行
reptyr <PID>,就能把卡住的进程转移到当前的新WSL窗口中,之后就可以正常操作了。
额外提醒
- 这些方法都不能保证100%成功,尤其是如果宿主进程已经彻底损坏的情况,但大概率能帮你保住后台进程;
- 平时建议用Windows Terminal替代原生的cmd和WSL窗口,它的稳定性更强,还自带不少进程管理和恢复的实用功能,能减少这类问题的发生。
补充问题场景(方便其他同款问题用户参考):
内存不足导致系统半崩溃后,部分cmd和WSL bash窗口陷入无响应状态,点击无反应,但窗口内的程序仍在后台运行;关闭窗口会直接终止对应的进程,想要找到恢复窗口操作权限的方法。这种情况多次出现,推测是关联的“父进程/宿主进程”崩溃导致窗口失去响应。
备注:内容来源于stack exchange,提问作者Zibri
相关产品推荐
相关产品推荐

