¿Es posible reiniciar el subsistema Ubuntu sin reiniciar mi sistema?
Intenté usar el shutdown
comando después de instalar algunas actualizaciones, pero esa no parece ser una opción aquí.
El texto de la captura de pantalla:
~$ bin/rcheck.sh
Reboot required.
~$ sudo shutdown -r now
shutdown: Unable to shutdown system
Respuesta1
No puedes reiniciar una distribución con un solo comando. Debes apagar e iniciar la distribución con dos comandos. Si tu correswsl.exe
en lugar de wsl
, entonces funciona tanto en WSL Bash como en CMD.
Vea la lista de distribuciones y su estado actual:
wsl.exe -l -v
Apagar todo: Build 18917+
wsl.exe --shutdown
Terminar una distribución específica: Windows 1903+
wsl.exe -t <DistroName>
Inicie la distribución predeterminada (marcada con *
):
wsl.exe
Inicie una distribución específica:
wsl.exe -d <DistroName>
versiones anteriores
# PowerShell (admin)
Restart-Service LxssManager
# or CMD (admin)
net stop LxssManager
net start LxssManager
Respuesta2
En un mensaje administrativo de PowerShell:Restart-Service LxssManager
Respuesta3
Desde Windows 10 versión 1803, cerrar todas las ventanas del terminal WSL no eliminará los procesos en segundo plano de forma predeterminada, a menos que el archivo /var/run/reboot-required
esté presente. Este archivo será creado automáticamente por apt en Ubuntu cuando una actualización requiera un reinicio, pero si desea reiniciar manualmente el subsistema, puede crear el archivo usted mismo:
sudo touch /var/run/reboot-required
No he probado esto en otras distribuciones disponibles en Microsoft Store. Una solución alternativa es eliminar todos los procesos usted mismo:
sudo killall -r '.*'
Respuesta4
Lo siguiente permite un apagado desde WSL2 usando el comando
wslreboot
(o cualquier comando personalizado).
Técnicamente, wslshutdown
sería más apropiado para el siguiente código:
Crear alias:
sudo nano ~/.bash_aliases
Añadir línea:
alias wslreboot='history -a && cmd.exe /C wsl --shutdown'
history -a
garantiza que el historial del comando bash se guarde antes del apagado.
Habilitar alias:
Reiniciar WSL
cmd.exe /C wsl --shutdown
o tipo
source .bash_aliases
Usar
ahora puedes escribir
wslreboot
para desconectar
Estoy pensando que podrías usar una variación de lo anterior para ejecutar un archivo por lotes con las líneas:
wsl --shutdown
wsl
para un reinicio adecuado.