如果我打开 WSL 控制台(通过单击开始菜单中的应用程序图标),然后启动任何 Windows exe,它就会挂起。我可以看到新进程出现在 Linux 端进程列表中,但在 Windows 任务管理器中找不到它。
但是,如果我在任何其他控制台(包括 PowerShell、CMD(通过调用wsl.exe bash -l any_windows_program.exe
)或 IDE 中的嵌入式终端)启动 WSL,一切都可以正常工作。
为什么?
背景信息:
我正在使用 Microsoft Store 的 KALI 发行版。几天前它还能用,但最近我没有更新任何内容。
编辑:
我注意到我的资源管理器也无法正常工作。通常,当我创建新文件或文件夹时,它应该立即出现在资源管理器中。但今天直到我按下 F5 键它才出现。
我尝试重新启动资源管理器,它停止了,但没有重新启动,然后所有进程窗口都冻结了(没有响应鼠标/键盘操作)。
重新启动即可解决所有这些问题。这似乎是内核或驱动程序错误。
答案1
只是想到这个可以与 Windows 主机休眠或使用“快速启动”选项(这也是一种休眠形式)关闭时 WSL 中出现的网络问题有关。
如果有可能的话,有两条可能的建议:
- 关闭 Windows 快速启动(在 下
Control Panel\Hardware and Sound\Power Options -> Choose what the power buttons do
)。 - 休眠后(如果必须),退出 Kali 并
wsl --shutdown
从 PowerShell、CMD 或 Windows 开始菜单发出。
话虽如此,但只有通过 App 图标启动时才会发生这种情况,这一点有点可疑。这可能表明您的 中存在问题~/.bashrc
。运行wsl.exe bash -l any_windows_program.exe
会跳过交互式启动 ( ~/.bashrc
),但会运行 ,~/.bash_profile
因为您将其指定为登录 shell ( -l
)。
如果问题再次出现,请尝试用 来wsl bash -li any_windows_program.exe
查看是否是由交互式启动引起的。