Riavvio di Ubuntu su Windows senza riavviare Windows?


76

È possibile riavviare il sottosistema Ubuntu senza riavviare il mio sistema?

Ho provato ad usare il shutdowncomando dopo aver installato alcuni aggiornamenti, ma qui non sembra essere un'opzione.

Bash su Windows.  Riavvio richiesto.  arresto: impossibile arrestare il sistema

Risposte:


101

Spegni tutto: Build 18917+

wsl --shutdown

Terminare la distribuzione specifica: Windows 1903+

wsl -t <DistroName>

Versioni precedenti

# PowerShell (admin)
Restart-Service LxssManager

# CMD (admin)
net stop LxssManager
net start LxssManager

inserisci qui la descrizione dell'immagine


perché netinvece di sc, come nella risposta di @llinfeng
Gaia

netha funzionato in cmd (con admin). Ho appena provato che il mio file bat con scnon funzionava nel sistema operativo Windows Build 1809.
llinfeng,

31

Dalla versione 1803 di Windows 10, la chiusura di tutte le finestre del terminale WSL non interromperà i processi in background per impostazione predefinita, a meno che il file non /var/run/reboot-requiredsia presente. Questo file verrà creato automaticamente da apt su Ubuntu quando un aggiornamento richiede un riavvio, ma se si desidera riavviare manualmente il sottosistema, è possibile creare il file da soli:

sudo touch /var/run/reboot-required

Non l'ho provato su altre distribuzioni disponibili nel Microsoft Store. Una soluzione alternativa è uccidere tutti i processi da soli:

sudo killall -r '.*'

Sai cosa posso fare per forzare un riavvio richiesto? Voglio testare la risposta in modo da poterla accettare.
Louis,

1
Questo ha funzionato per me. Ho dovuto sudo:sudo killall -r '.*'
F21,

@ Louis vedo che l'hai già accettato, ma puoi farlo sudo touch /var/run/reboot-required. In effetti, la presenza del file fa sì che WSL uccida tutti i processi in background e chiuda il sottosistema quando tutte le finestre del terminale sono chiuse, quindi puoi abusarne anche.
nyuszika7h

1
killallha funzionato perfettamente per me. Non avevo bisogno di toccare reboot-required.
Giovanni Bassi,

23

A un prompt di PowerShell amministrativo: Restart-Service LxssManager


11
@RajeshS Potrebbe essere breve ma risponde alla domanda.
nyuszika7h

Mi piace. Facile da ricordare, si completa automaticamente con la scheda. Divertente vedere come Windows ha ridotto il suo modello di servizio fin dall'inizio.
Louis,

2
Ho appena ricevuto questo ripetutamenteWARNING: Waiting for service 'LxssManager (LxssManager)' to stop...
Chris Snow il

Funziona perfettamente. Per prima cosa, avvia PowerShell con i diritti di amministratore.
Erik Kalkoken,

10

Semplicemente uscire dalla shell exite riaprire sembra fare il trucco.

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
Questo non funziona più.
Dakkaron,

@Dakkaron - Lo ha fatto quando è stata presentata la domanda.
Ramhound,

1
Ecco perché ho detto "più". Le informazioni che questo post è obsoleto sono importanti, quindi altre persone che hanno il problema in questo momento non hanno bisogno di provarlo per scoprire che non funziona. Non sono sicuro di come vengano gestite le cose qui, ma su Stackoverflow una risposta non dovrebbe solo aiutare la persona che ha posto la domanda, ma anche tutti gli altri che sono alla ricerca di soluzioni per lo stesso problema.
Dakkaron,

In particolare, non funziona da allora Windows 10 Build 17046. @ Ti piacerebbe modificarlo nella tua risposta?
Dakkaron,

Funziona per me sulla build 17134.
Ian Kemp

7

Basta aprire una finestra cmd come amministratore ed eseguire questi comandi per riavviarlo.

net stop LxssManager
net start LxssManager

1
Aggiungi qualche secondo tra quei due comandi. ad es. timeout /t 3comando (aggiungere 3 secondi).
Biswapriyo,

2
Questo duplica la risposta di samdd di agosto.
fixer1234,

Non funziona ... rimane nello stato di "arresto". quando provo a eseguirlo di nuovo, viene visualizzato il messaggio "Il servizio si sta avviando o si arresta. Riprovare più tardi." ... non finisce mai. Si blocca sempre dopo aver eseguito un comando rsync da batch come "bash -c 'rsync ....'". Questo è un incubo
pistolero o

"Il servizio LxssManager si sta arrestando ............................................ ............................. Impossibile arrestare il servizio LxssManager. " : - /
Alex Jansen il

4

Ho creato un *.batfile e eseguendolo si riavvia entro 10 secondi. (Sono sorpreso dalla velocità con cui vengono ricaricate le cose. E, per favore, avvisa se il mio approccio causerà seri problemi a lungo termine.)

Inserisci le seguenti due righe in un WSL_reboot.batfile ed eseguilo ogni volta che devi riavviare WSL su Windows 10.

net stop LxssManager
net start LxssManager 

Nota di aggiornamento : per il mio recente "aggiornamento" del sistema operativo Windows, Build 1809 non piace scpiù il comando.

Nota a margine: è necessario riavviare il "kernel" WSL quando formatta un disco con lettere tramite Esplora risorse. Non ho risolto del tutto il sottoprodotto, tuttavia, in cui il lscomando visualizzerà il seguente errore. Related-post-from-WSL @ Github ; Correlato-post-dallo-stack . Rilascerò un link se riesco a risolvere il bug del sottoprodotto.

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

perché scinvece di net, come nella risposta di @ samdd
Gaia,

1
Immagino che al momento netnon funzionasse con il mio Windows 10? scdeve aver funzionato allora. Avrei dovuto specificare il numero di build di Windows.
Llinfeng,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.