我在安装一些更新后尝试使用shutdown命令,但是在这里似乎不是一个选择。 >


#1 楼

关闭所有内容:构建18917+
 wsl.exe --shutdown
 

终止特定发行版:Windows 1903+
 wsl.exe -t <DistroName>
 


旧版本
 # PowerShell (admin)
Restart-Service LxssManager

# or CMD (admin)
net stop LxssManager
net start LxssManager
 



评论


为什么用net代替sc,如@llinfeng的答案

–盖亚
19年1月1日在17:36

净工作在cmd(与管理员)。刚刚测试过,我的带sc的bat文件在Windows OS Build 1809中不起作用。

–林丰
19年1月15日在16:11

@Gaia net命令是PowerShell之前的用于管理Windows服务和网络的旧版工具

–稳定狗
19/12/7在13:21

我使用net命令(net stop LxxManager似乎挂起)在我的计算机(Windows 10内部版本17763)的管理CMD中出现问题。由于我远离PowerShell(因为我拥有WSL),因此sc命令(查询/停止/启动)可以完成该工作,而在同一Admin CMD窗口上没有任何问题。我认为当前是服务控制管理器的首选API?

– Flandraco
20年10月10日,0:45

我正在将最新的Windows Insider与WSL 2结合使用,并尝试使用C:\ Users \ xxx> wsl -l -v之类的命令,显示三个是“ Ubuntu”,“ docker-desktop”和“ docker-desktop-data”与我的情况一样,也有最新的docker在运行,因此wsl -shutdown可以工作,但是它也可以关闭我的docker环境。经过反复试验,我发现wsl -t“ Ubuntu”可以工作,但是有时需要时间或不可靠?一旦工作,当我使用管理员权限启动命令外壳程序时。

– EinoMäkitalo
20-5-14在1:42



#2 楼

在管理性PowerShell提示符下:Restart-Service LxssManager

评论


@RajeshS可能很短,但确实回答了问题。

–nyuszika7h
19年4月21日在14:41

我喜欢。易于记忆,带有选项卡的自动完成功能就足够了。有趣的是,看到Windows从一开始就降低了其服务模型的水平。

–路易·瓦韦鲁
19-4-24的1:43



我只是反复得到这个警告:等待服务“ LxssManager(LxssManager)”停止...

–克里斯诺(Chris Snow)
19年6月13日在15:53

这很完美。只需先使用管理员权限启动您的Powershell。

–埃里克·卡尔科肯(Erik Kalkoken)
19年11月1日在13:21

#3 楼

从Windows 10版本1803开始,默认情况下关闭所有WSL终端窗口将不会杀死后台进程,除非存在文件/var/run/reboot-required。当更新需要重新引导时,此文件将由apt在Ubuntu上自动创建,但是如果要手动重新引导子系统,则可以自己创建文件:

sudo touch /var/run/reboot-required


我尚未在Microsoft Store中提供的其他发行版上对此进行测试。另一种解决方案是自己杀死所有进程:

sudo killall -r '.*'


评论


您知道我可以强制重新启动吗?我想测试答案,这样我才能接受。

–路易·瓦韦鲁
18-6-10下午4:37

这对我有用。我不得不sudo:sudo killall -r'。*'

– F21
18年6月20日在9:19

@Louis我看到您已经接受它,但是您可以执行sudo touch / var / run / reboot-required。实际上,似乎该文件的存在会导致WSL在关闭所有终端窗口时杀死所有后台进程并关闭子系统,因此您也可以滥用它。

–nyuszika7h
18年7月28日在8:40

Killall对我来说工作非常完美。无需触摸重新启动要求。

–乔凡尼·巴西
19年5月5日在16:06

#4 楼

只需以管理员身份打开cmd窗口,然后运行以下命令将其重新启动。

net stop LxssManager
net start LxssManager


评论


在这两个命令之间添加几秒钟。例如超时/ t 3命令(增加3秒)。

– Biswapriyo
18-10-21在6:33

这与samdd从8月以来的回答重复。

–fixer1234
18-10-25在2:46

不起作用...处于“停止”状态。当我尝试再次运行它时,出现“服务正在启动或停止。请稍后重试。” ...永远不会完成。在我从“ bash -c'rsync ....'”批处理中运行rsync命令后,总是挂起。这是一场噩梦。

– Gunslingor
19年5月5日在13:37

“ LxssManager服务正在停止..................................................... .............................无法停止LxssManager服务。” :-/

– Alex Jansen
19-11-25在23:26



#5 楼

只需使用exit退出外壳并重新打开即可解决问题。该shell需要以admin身份运行。
Louis@ATHENA:~$ bin/rcheck.sh
Reboot not necessary.

Louis@ATHENA:~$ bin/update.sh
[sudo] password for Louis:
The following packages will be upgraded:
  libssl1.0.0 openssl
2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Get:1 http://archive.ubuntu.com/ubuntu/ trusty-updates/main libssl1.0.0 amd64 1.0.1f-1ubuntu2.21 [830 kB]
Get:2 http://archive.ubuntu.com/ubuntu/ trusty-updates/main openssl amd64 1.0.1f-1ubuntu2.21 [489 kB]
Setting up libssl1.0.0:amd64 (1.0.1f-1ubuntu2.21) ...
Setting up openssl (1.0.1f-1ubuntu2.21) ...
Del libssl1.0.0 1.0.1f-1ubuntu2.20 [830 kB]
Del openssl 1.0.1f-1ubuntu2.20 [489 kB]

Louis@ATHENA:~$ bin/rcheck.sh
Reboot required.

Louis@ATHENA:~$ exec bash -l
Louis@ATHENA:~$ bin/rcheck.sh
Reboot required.

Louis@ATHENA:~$ exit

Louis@ATHENA:~$ bin/rcheck.sh
Reboot not necessary.
Louis@ATHENA:~$


评论


这不再起作用。

–达卡龙
18年7月24日在9:51

@Dakkaron-提交问题时确实如此。

–猎犬
18-10-23在1:55

这就是为什么我说“不再”。这篇文章过时的信息很重要,因此其他有问题的人现在无需尝试即可发现它不起作用。我不确定这里如何处理事情,但是在Stackoverflow上,答案不仅应该帮助提出问题的人,而且还可以为正在寻找相同问题的解决方案的所有其他人提供帮助。

–达卡龙
18-10-23在8:23

适用于我的版本17134。

–伊恩·坎普(Ian Kemp)
18年11月8日在7:19

在1909年为我工作(18363)。因此答案仍然有效。确保在提升的提示下运行它。

–我会吗
20-2-23在1:01

#6 楼

以下内容允许使用命令
wslreboot(或任何自定义命令)从WSL2内部关闭
从技术上讲,wslshutdown对于下面的代码更合适
创建别名:
sudo nano ~/.bash_aliases

添加行
alias wslreboot='history -a && cmd.exe /C wsl --shutdown'

history -a确保关闭前我们保存了bash命令历史记录
启用别名:
重新启动WSL
cmd.exe /C wsl --shutdown

或键入
source .bash_aliases

使用:
现在您可以键入
wslreboot  

以关闭

我想您可以使用上述版本的变体运行以下行的批处理文件
wsl --shutdown
wsl

正确重启

#7 楼

我创建了一个*.bat文件,运行该文件会在10秒内重新启动。 (我对重新加载的速度感到惊讶。而且,请告知我的方法从长远来看是否会造成严重的麻烦。)

将以下两行放入WSL_reboot.bat文件中,然后每运行一次您需要在Windows 10上重新启动WSL的时间。 。

侧面说明:当他/她通过Windows资源管理器格式化字母驱动器时,需要重新启动WSL“内核”。但是,还没有完全解决副产品,在这里sc命令将得到以下错误。相关帖子来自WSL @ Github;从堆栈相关的帖子。如果我设法解决副产品错误,将删除一个链接。

net stop LxssManager
net start LxssManager 


评论


为什么用sc代替net,如@samdd的回答

–盖亚
19年1月1日在17:35

我猜net当时无法在Windows 10上运行吗?那时的sc一定已经工作了。我应该已经指定了Windows内部版本号。

–林丰
19年1月2日,16:56