vmmemwslc-cli remains running after all containers have exited
@craigloewen-msft is already working on this.
Since Jul 7, 2026.
- Dominant language
- C++
- Stars
- 33.7k
- Forks
- 1.8k
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 116
Description
### Windows Version
Microsoft Windows [Version 10.0.26200.8655]
### WSL Version
2.9.3.0
### Are you using WSL 1 or WSL 2?
- [x] WSL 2
- [ ] WSL 1
### Kernel Version
6.18.35.2
### Distro Version
Debian
### Other Software
_No response_
### Repro Steps
1. Run a temporary Alpine container:
```powershell
wslc run --rm -it alpine:latest
```
2. Exit the container (for example, by running exit or pressing Ctrl+D).
3. Verify that there are no running containers:
```powershell
wslc ps
```
Output:
```powershell
CONTAINER ID NAME IMAGE CREATED STATUS PORTS
```
4. Verify that there are no existing containers:
```powershell
wslc container list
```
Output:
```powershell
CONTAINER ID NAME IMAGE CREATED STATUS PORTS
```
5. Open Task Manager (or run `tasklist`) and observe that `vmmemwslc-cli-` is still running.
### Expected Behavior
Once the container exits and there are no running or existing containers, the `wslc` VM should become idle and shut down automatically after the configured idle timeout. The `vmmemwslc-cli-` process should terminate and release its memory.
### Actual Behavior
Although there are no running or existing containers, `vmmemwslc-cli-` continues running indefinitely and keeps consuming memory (around 500 MB in my case). It does not exit even after waiting longer than the configured VM idle timeout.
### Diagnostic Logs
_No response_
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.