如何在死掉后彻底重启wsl2

wsl2(Windows Subsystem Linux 2) 给在Windows上的开发带了非常多的便利,不过wsl2莫名奇妙死掉的情况还是很多的,比如当Windows从休眠状态恢复之后。

在最近的一些版本升级之后(wsl .exe --update),我发现wsl2在挂掉之后很难恢复,而VmmemWSL进程还有可能占用大量的内存和CPU,并且在任务管理器下根本杀不掉。

如何彻底的关闭掉wsl2的进程并且重启wsl2呢?首先以下几种方式似乎是没用的

  • 在powershell下,敲 wsl.exe --shutdown
  • 重启LXSSMANAGER服务(在Admin模式的powershell下敲 Restart-Service LxssManager
  • 重启Hyper-V Virtual Machine Management服务(在Admin模式的powershell下敲 Restart-Service vmms

上面的方法一些方法在更老的版本可以工作,目前来说,在wsl2死掉之后最为有效的重启方法是在Admin模式的powershell下执行下面的命令(from https://superuser.com/a/1778328/499516 )

taskkill /f /im wslservice.exe

执行之后,已经死掉的wsl进程窗口就会提示

[process exited with code 1 (0x00000001)]
You can now close this terminal with Ctrl+D, or press Enter to restart.

然后就可以按Enter重启了。

你可能感兴趣的:(wsl,linux,windows)