首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在windows 11上关闭WSLG 2/WSLG/Vs代码后,Vmmem不会自动关闭

在windows 11上关闭WSLG 2/WSLG/Vs代码后,Vmmem不会自动关闭
EN

Stack Overflow用户
提问于 2022-11-14 01:10:05
回答 1查看 96关注 0票数 1

我一直在VSCode上使用WSL。我最近注意到,在关闭了VSCode或单个WSL终端之后,一个名为vmmem的进程一直在使用大量内存。

我已经找到了如何在CMD或PowerShell中使用以下命令手动关闭它:

代码语言:javascript
运行
复制
wsl --shutdown

但是,当我关闭WSL终端或VSCode时,我一直试图找到一种使其关闭的方法。

这个问题在过去没有发生过,这意味着它很可能是由Windows更新引起的。

我已经尝试过更新我的WSL和我的Windows版本,但是我的所有研究到目前为止都没有结果。

下面是我对WSL的当前版本:

代码语言:javascript
运行
复制
Version WSL : 0.70.4.0
Version du noyau : 5.15.68.1
Version WSLg : 1.0.45
Version MSRDC : 1.2.3575
Version direct3D : 1.606.4
Version de DXCore : 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
version Windows : 10.0.22000.1098
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-14 14:41:20

是的,Vmmem是作为WSL2虚拟机的一部分运行的进程。是的,wsl --shutdown将终止VM本身(以及在其中运行的任何发行版)。

通常,WSL2分两个阶段终止:

  • 首先,当WSL2发行版中没有“交互式启动进程”(前台或后台)时,它将在15秒后终止。这是目前的non-configurable.

  • 第二,当所有运行的WSL2发行版都已终止时,WSL2 VM本身将在60秒后关闭。此值在Windows11上最近发布的WSL2版本上是可配置的。此时,Vmmem应该结束并释放其内存。

首先要检查的是,当Vmmem不终止时,发行版是否仍在运行。来自PowerShell或CMD:

代码语言:javascript
运行
复制
wsl -l -v
# wsl --list --verbose

如果任何WSL2发行版仍然处于Running状态(我猜其中一个是,对于您来说),那么WSL2 VM (因此也就是Vmmem进程)也将继续运行。

假设您只运行一个发行版:

代码语言:javascript
运行
复制
wsl -e ps axjff

如果您没有运行Systemd,那么应该运行的惟一内容是:

  • init processes
  • The ps命令itself
  • plan9,在WSL2中是一个相当新的进程(从0.70.0开始),但这不会阻止来自terminating.

的分发

如果您正在运行Systemd,那么将会有很多额外的服务。但是,Systemd本身( /sbin/init)启动的任何内容都不应阻止WSL2发行版终止。

我刚才在我的(非Systemd)版本中注意到了一个假的xsel,但我认为这仅仅是因为安装了Fish。但是,它阻止了Ubuntu的终止,从而阻止了WSL2 VM的关闭。

VSCode "WSL服务器“有什么留给您的吗?或者从你的开发中产生一个背景过程的东西?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74426026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档