在 Windows 上重新啟動 Ubuntu 而不重新啟動 Windows?

在 Windows 上重新啟動 Ubuntu 而不重新啟動 Windows?

是否可以在不重新啟動系統的情況下重新啟動 Ubuntu 子系統?

我嘗試在安裝一些更新後使用該shutdown命令,但這似乎不是一個選項。

WSL。需要重新啟動。無法關閉系統

截圖文字:

~$ bin/rcheck.sh
Reboot required.
~$ sudo shutdown -r now
shutdown: Unable to shutdown system

答案1

您無法使用單一指令重新啟動發行版。您必須使用兩個命令關閉和啟動發行版。如果你跑wsl.exe而不是wsl,那麼它在 WSL Bash 和 CMD 中都可以工作。

查看發行版清單及其當前狀態:

wsl.exe -l -v

關閉一切: Build 18917+

wsl.exe --shutdown

終止特定發行版: Windows 1903+

wsl.exe -t <DistroName>

啟動預設發行版(標有*):

wsl.exe

啟動特定發行版:

wsl.exe -d <DistroName>

舊版

# PowerShell (admin)
Restart-Service LxssManager

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

在此輸入影像描述

答案2

在管理 PowerShell 提示字元處:Restart-Service LxssManager

答案3

自 Windows 10 版本 1803 起,預設關閉所有 WSL 終端機視窗不會終止後台進程,除非該檔案/var/run/reboot-required存在。當更新需要重新啟動時,該檔案將由 Ubuntu 上的 apt 自動創建,但如果您想手動重新啟動子系統,您可以自行建立該檔案:

sudo touch /var/run/reboot-required

我尚未在 Microsoft Store 中提供的其他發行版上對此進行測試。另一種解決方案是自行終止所有進程:

sudo killall -r '.*'

答案4

以下允許使用命令 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

以便正確重新啟動。

相關內容