在不重新启动Windows的情况下在Windows上重新启动Ubuntu?


76

是否可以在不重新启动系统的情况下重新启动Ubuntu子系统?

shutdown安装某些更新后,我尝试使用该命令,但这似乎不是一种选择。

在Windows上重击。 需要重启。 shutdown:无法关闭系统

Answers:


101

关闭所有内容: Build 18917+

wsl --shutdown

终止特定发行版: Windows 1903+

wsl -t <DistroName>

旧版本

# PowerShell (admin)
Restart-Service LxssManager

# CMD (admin)
net stop LxssManager
net start LxssManager

在此处输入图片说明


为什么net代替sc@llinfeng的回答
盖亚

net在cmd中工作(与管理员)。刚刚测试,我的蝙蝠文件,sc并没有在Windows操作系统构建1809工作
llinfeng

31

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

sudo touch /var/run/reboot-required

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

sudo killall -r '.*'

您知道我可以强制重新启动吗?我想测试答案,以便我接受。
路易(Louis)

1
这对我有用。我必须sudosudo killall -r '.*'
F21

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

1
killall对我来说效果很好。不需要碰reboot-required
乔瓦尼·巴西

23

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


11
@RajeshS可能很短,但确实可以回答问题。
nyuszika7h

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

2
我只是反复得到这个WARNING: Waiting for service 'LxssManager (LxssManager)' to stop...
克里斯·雪

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

10

只需退出shell exit并重新打开就可以解决问题。

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:~$

5
这不再起作用。
达卡龙

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

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

具体来说,自以来不起作用Windows 10 Build 17046。@Louis您介意将此编辑为答案吗?
达卡龙

对我的作品上构建17134.
伊恩·坎普

7

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

net stop LxssManager
net start LxssManager

1
在这两个命令之间添加几秒钟。例如,timeout /t 3命令(增加3秒)。
Biswapriyo

2
这与samdd从8月以来的回答重复。
fixer1234 '18 -10-25

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

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

4

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

将以下两行放入WSL_reboot.bat文件中,并在每次需要在Windows 10上重新引导WSL时运行它。

net stop LxssManager
net start LxssManager 

更新说明:根据我最近对Windows OS进行的“升级”,Build 1809不喜欢该sc命令。

旁注:当他/她通过Windows资源管理器格式化字母驱动器时,需要重新启动WSL“内核”。不过,还没有完全解决副产品,在ls命令中将出现以下错误。相关文章from-WSL @ Github ; 从堆栈相关的帖子。如果我设法解决副产品错误,将删除一个链接。

ls: 'System Volume Information': Permission denied
...
d--x--x--x 1 llinfeng llinfeng       512 Jan 15 11:00 'System Volume Information'/
...

为什么sc代替net@samdd的答案中的内容
Gaia

1
我想net当时我的Windows 10无法使用吗?sc一定是在那时。我应该已经指定了Windows内部版本号。
llinfeng
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.