Redémarrer Ubuntu sous Windows sans redémarrer Windows?

77

Est-il possible de redémarrer le sous-système Ubuntu sans redémarrer mon système?

J'ai essayé d'utiliser la shutdowncommande après l'installation de certaines mises à jour, mais cela ne semble pas être une option ici.

Bash sous Windows.  Redémarrage nécessaire.  shutdown: impossible d'arrêter le système

Louis
la source

Réponses:

102

Tout arrêter: Build 18917+

wsl --shutdown

Terminer la distribution spécifique: Windows 1903+

wsl -t <DistroName>

Versions plus anciennes

# PowerShell (admin)
Restart-Service LxssManager

# CMD (admin)
net stop LxssManager
net start LxssManager

entrez la description de l'image ici

samdd
la source
pourquoi netau lieu de sc, comme dans la réponse de @ llinfeng
Gaia
nettravaillé en cmd (avec admin). Je viens de tester que mon fichier de batte scne fonctionnait pas sous Windows OS Build 1809.
llinfeng
31

Depuis Windows 10 version 1803, la fermeture de toutes les fenêtres de terminal WSL ne supprimera pas les processus d'arrière-plan par défaut, sauf si le fichier /var/run/reboot-requiredest présent. Ce fichier sera automatiquement créé par apt sur Ubuntu lorsqu'une mise à jour nécessite un redémarrage, mais si vous souhaitez redémarrer manuellement le sous-système, vous pouvez créer le fichier vous-même:

sudo touch /var/run/reboot-required

Je n'ai pas testé cela sur d'autres distributions disponibles dans le Microsoft Store. Une autre solution consiste à tuer tous les processus vous-même:

sudo killall -r '.*'
nyuszika7h
la source
Savez-vous ce que je peux faire pour forcer un redémarrage requis? Je veux tester la réponse pour pouvoir l'accepter.
Louis
1
Cela a fonctionné pour moi. Je devais sudo:sudo killall -r '.*'
F21 le
@Louis Je vois que vous l'avez déjà accepté, mais vous pouvez le faire sudo touch /var/run/reboot-required. En fait, il semble que la présence du fichier force WSL à détruire tous les processus en arrière-plan et à arrêter le sous-système lorsque toutes les fenêtres du terminal sont fermées. Vous pouvez donc en abuser également.
Nyuszika7h
1
killalla parfaitement fonctionné pour moi. Pas besoin de toucher reboot-required.
Giovanni Bassi
24

À une invite administrative de PowerShell: Restart-Service LxssManager

regexaurus
la source
11
@RajeshS Cela peut être court mais cela répond à la question.
Nyuszika7h le
Je l'aime. Facile à retenir, autocomplète avec l'onglet assez bien. Amusant de voir à quel point Windows a bien intégré son modèle de service dès le début.
Louis
2
Je viens de recevoir cela à plusieurs reprisesWARNING: Waiting for service 'LxssManager (LxssManager)' to stop...
Chris Snow
Cela fonctionne parfaitement. Commencez simplement votre PowerShell avec les droits d’administrateur.
Erik Kalkoken
10

Il suffit de sortir de la coquille avec exitet de rouvrir pour résoudre le problème.

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:~$
Louis
la source
5
Cela ne fonctionne plus.
Dakkaron
@Dakkaron - C'était le cas lorsque la question a été soumise.
Ramhound
1
C'est pourquoi j'ai dit "plus". Les informations selon lesquelles ce message est obsolète sont importantes. Par conséquent, les autres personnes touchées par le problème ne doivent pas l'essayer pour vérifier qu'il ne fonctionne pas. Je ne suis pas sûr de la façon dont les choses sont gérées ici, mais sur Stackoverflow, une réponse est censée non seulement aider la personne qui a posé la question, mais également tous les autres qui recherchent des solutions au même problème.
Dakkaron
Plus précisément, cela ne fonctionne pas depuis Windows 10 Build 17046. @Louis voudriez-vous éditer ceci dans votre réponse?
Dakkaron
Travaille pour moi sur le build 17134.
Ian Kemp Le
7

Ouvrez simplement une fenêtre de commande en tant qu'administrateur et exécutez ces commandes pour la redémarrer.

net stop LxssManager
net start LxssManager
Normarth
la source
1
Ajoutez quelques secondes entre ces deux commandes. p.ex. timeout /t 3commande (ajouter 3 secondes).
Biswapriyo
2
Cela duplique la réponse de samdd du mois d’août.
Fix1234
Ne fonctionne pas ... reste dans le statut "en arrêt". Lorsque j'essaie de l'exécuter à nouveau, le message "Le service est en cours de démarrage ou d'arrêt. Veuillez réessayer ultérieurement." ... ne se termine jamais. Je bloque toujours après l'exécution d'une commande rsync de lot telle que "bash -c 'rsync ....'". C'est un cauchemar.
Gunslingor le
"Le service LxssManager est en cours d'arrêt ............................................ ............................. Le service LxssManager n'a pas pu être arrêté. " : - /
Alex Jansen
4

J'ai créé un *.batfichier et son exécution effectue le redémarrage dans les 10 secondes. (Je suis émerveillé par la rapidité avec laquelle les choses sont rechargées. Et, s'il vous plaît, indiquez si mon approche causera de graves problèmes à long terme.)

Placez les deux lignes suivantes dans un WSL_reboot.batfichier et exécutez-le chaque fois que vous devez redémarrer le WSL sous Windows 10.

net stop LxssManager
net start LxssManager 

Note de mise à jour : d'après ma récente "mise à niveau" du système d'exploitation Windows, la version 1809 n'aime plus la sccommande.

Note latérale: il est nécessaire de redémarrer le "noyau" WSL lorsqu'il formate un lecteur de lettres avec l'Explorateur Windows. Nous n'avons pas encore résolu le sous-produit, où la lscommande obtiendra l'erreur suivante. Related-post-from-WSL @ Github ; Relatif-post-de-la-pile . Laisse tomber un lien si je réussis à résoudre le bogue de produit secondaire.

ls: 'System Volume Information': Permission denied
...
d--x--x--x 1 llinfeng llinfeng       512 Jan 15 11:00 'System Volume Information'/
...
llinfeng
la source
pourquoi scau lieu de net, comme dans la réponse de @ samdd
Gaia
1
Je suppose que netne fonctionnait pas avec mon Windows 10 à l'époque? scdoit avoir travaillé à l'époque. J'aurais dû préciser le numéro de build de Windows.
llinfeng