Jawaban:
Matikan semuanya: Build 18917+
wsl --shutdown
Hentikan distro tertentu: Windows 1903+
wsl -t <DistroName>
# PowerShell (admin)
Restart-Service LxssManager
# CMD (admin)
net stop LxssManager
net start LxssManager
net
bekerja di cmd (dengan admin). Baru saja diuji bahwa file bat saya sc
tidak bekerja di Windows OS Build 1809.
Sejak Windows 10 versi 1803, menutup semua jendela terminal WSL tidak akan mematikan proses latar belakang secara default, kecuali file /var/run/reboot-required
tersebut ada. File ini akan secara otomatis dibuat oleh apt di Ubuntu ketika pembaruan membutuhkan reboot, tetapi jika Anda ingin reboot subsistem secara manual, Anda dapat membuat file sendiri:
sudo touch /var/run/reboot-required
Saya belum menguji ini pada distribusi lain yang tersedia di Microsoft Store. Solusi alternatif adalah membunuh sendiri semua proses:
sudo killall -r '.*'
sudo
:sudo killall -r '.*'
sudo touch /var/run/reboot-required
. Bahkan, tampaknya keberadaan file menyebabkan WSL untuk mematikan semua proses latar belakang dan mematikan subsistem ketika semua jendela terminal ditutup, sehingga Anda dapat menyalahgunakannya juga.
killall
bekerja dengan baik untuk saya. Tidak perlu disentuh reboot-required
.
Pada prompt PowerShell administratif: Restart-Service LxssManager
WARNING: Waiting for service 'LxssManager (LxssManager)' to stop...
Cukup keluar dari shell dengan exit
dan membuka kembali tampaknya melakukan trik.
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:~$
Windows 10 Build 17046
. @Louis maukah kamu mengedit ini menjadi jawabanmu?
Cukup buka jendela cmd sebagai adminstrator dan jalankan perintah ini untuk memulai kembali.
net stop LxssManager
net start LxssManager
timeout /t 3
perintah (tambahkan 3 detik).
Saya telah membuat *.bat
file, dan menjalankannya melakukan reboot dalam waktu 10 detik. (Saya kagum dengan seberapa cepat hal-hal dimuat ulang. Dan, mohon saran jika pendekatan saya akan menyebabkan masalah serius dalam jangka panjang.)
Masukkan dua baris berikut dalam WSL_reboot.bat
file, dan jalankan setiap kali Anda perlu me-reboot WSL pada Windows 10.
net stop LxssManager
net start LxssManager
Catatan pembaruan : sesuai "pemutakhiran" OS Windows saya baru-baru ini, Build 1809 tidak menyukai sc
perintah lagi.
Catatan: satu harus me-reboot "kernel" WSL ketika dia memformat drive berhuruf melalui Windows Explorer. Namun, tidak cukup menyelesaikan produk sampingan, di mana ls
perintah akan mendapatkan kesalahan berikut. Terkait-pasca-dari-WSL @ Github ; Terkait-post-from-the-Stack . Akan menjatuhkan tautan jika saya berhasil menyelesaikan bug produk-samping.
ls: 'System Volume Information': Permission denied
...
d--x--x--x 1 llinfeng llinfeng 512 Jan 15 11:00 'System Volume Information'/
...
sc
alih - alih net
, seperti dalam jawaban @ samdd
net
tidak bekerja dengan Windows 10 saya pada saat itu? sc
pasti bekerja saat itu. Saya seharusnya menentukan nomor build windows.
net
alih - alihsc
, seperti dalam jawaban @linlin