WSL2 Kali 不会停止并且总是在启动时启动

WSL2 Kali 不会停止并且总是在启动时启动

在我注意到 WSL2 一直在我的 PC 上运行后,我想知道发生了什么,在我检查后发现 Kali 正在运行,无论我做什么它都没有停止,我也尝试重新安装所有内容但这也没有改变任何东西。

所以,我想知道是否有人能解决这个问题,以便一旦终端窗口关闭,Kali 就会停止。

这甚至是在运行wsl --shutdown命令之后。 WSL2 Kali 运行

答案1

让我们换一种思路。这仍然基于我的理论上一个答案,而是尝试以不同的方式来确定发生了什么。

由于您已经autoruns.exe安装了(来自评论),您可能已经拥有其余的SysInternals 套件以及。如果没有,请安装, 或者至少Procmon。 然后:

  • 跑步procmon.exe
  • 筛选->筛选...(或Ctrl+ L,或图标)
  • 创建一个小路过滤哪个包含 \\wsl
  • 添加列表的过滤器,以及好的对话
  • 通过图标、Ctrl+L编辑->清晰显示

寻找正在访问的东西\\wsl.localhost\kali-linux\...

我最终发现,出于某种原因,华硕 Armory Crate 正在尝试访问一些老的(不再在我的系统上)包括 Kali 在内的发行版。我将尝试卸载(并可能重新安装)以查看是否可以消除此问题。但我真的不知道 Armory Crate 为什么这样做。现在我想知道它是否在您的系统上也是同样的过程。

答案2

简短回答:Windows 中的某些内容可能正在尝试访问 中的文件\\wsl.localhost\kali-linux。只要访问该路径,分发就会启动,至少在 Windows 11 上是这样。

更多详情:

我最近自己也遇到了类似的情况,但我不确定您是否遇到了同样的事情。

就我的情况来说,我有:

  • 安装多个发行版
  • 其中一个是专门的 Debian 发行版,带有本地稳定 Diffusion 安装
  • debugShell=true中设置.wslconfig。这是 WSL 版本中的一项功能0.51.2以后每当 WSL2 VM 启动(或重新启动)时都会显示一个单独的调试 shell。

我注意到,当我没有执行任何与 WSL 相关的事情时,调试 shell(以及 WSL2 VM)就会启动,通常是在启动 Windows 后不久。然后我注意到,当我通过浏览器 Vivaldi 启动时,这种情况也发生了。唯一启动的发行版是 Stable Diffusion 发行版。

如果我重命名发行版(通过注册表破解),它将不再启动。如果我将其重新命名,它将在启动 Vivaldi 时启动。

我最终发现,我使用 Vivaldi 直接将文件 (Stable Diffusion) 检查点下载到发行版中,使用路径\\wsl.localhost\<distro>。当 Vivaldi 启动时,我相信它会快速扫描列表中的每个文件,以查看它是否仍然存在。此操作导致发行版启动。

在您的例子中,您提到 Kali 在关闭后立即重新启动,我假设这意味着某个东西在 Kali 中打开了一个文件并在关闭时尝试重新打开它(分发停止)。

如果你有 Windows 11,你可以安装Microsoft Store 上的预览版本获得 Kali 启动的确切“视觉指示”。创建或编辑%userprofile%\.wslconfig(这是您的视窗配置文件(不是 WSL)具有以下内容:

[wsl2]
debugShell=true

然后wsl --shutdown。下次 Kali 自行启动时,您将看到一个调试控制台窗口。您不需要对它执行任何操作——它只是 Kali 启动的视觉指示。当它出现时,您可以将其关闭。

我希望这能给你一些提示确切时间Kali 正在启动,基于此,也许可以知道是什么导致了它。

相关内容