Reboot Ubuntu di Windows tanpa me-reboot Windows?

76

Apakah mungkin untuk me-reboot sub-sistem Ubuntu tanpa me-restart sistem saya?

Saya mencoba menggunakan shutdownperintah setelah menginstal beberapa pembaruan, tetapi sepertinya itu bukan opsi di sini.

Bash di Windows.  Diperlukan boot ulang.  shutdown: Tidak dapat mematikan sistem

Louis
sumber

Jawaban:

101

Matikan semuanya: Build 18917+

wsl --shutdown

Hentikan distro tertentu: Windows 1903+

wsl -t <DistroName>

Versi yang lebih lama

# PowerShell (admin)
Restart-Service LxssManager

# CMD (admin)
net stop LxssManager
net start LxssManager

masukkan deskripsi gambar di sini

samdd
sumber
mengapa netalih - alih sc, seperti dalam jawaban @linlin
Gaia
netbekerja di cmd (dengan admin). Baru saja diuji bahwa file bat saya sctidak bekerja di Windows OS Build 1809.
llinfeng
31

Sejak Windows 10 versi 1803, menutup semua jendela terminal WSL tidak akan mematikan proses latar belakang secara default, kecuali file /var/run/reboot-requiredtersebut 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 '.*'
nyuszika7h
sumber
Apakah Anda tahu apa yang bisa saya lakukan dengan memaksa reboot yang diperlukan? Saya ingin menguji jawabannya sehingga saya bisa menerimanya.
Louis
1
Ini berhasil untuk saya. Saya harus sudo:sudo killall -r '.*'
F21
@ Louis Aku tahu kamu sudah menerimanya, tetapi kamu bisa melakukannya 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.
nyuszika7h
1
killallbekerja dengan baik untuk saya. Tidak perlu disentuh reboot-required.
Giovanni Bassi
23

Pada prompt PowerShell administratif: Restart-Service LxssManager

regexaurus
sumber
11
@ Rajesh Mungkin pendek tapi itu menjawab pertanyaan.
nyuszika7h
Saya suka itu. Mudah diingat, pelengkapan otomatis dengan tab cukup baik. Menyenangkan melihat seberapa baik Windows menurunkan model layanannya dari awal.
Louis
2
Saya hanya mendapatkan ini berulang kaliWARNING: Waiting for service 'LxssManager (LxssManager)' to stop...
Chris Snow
Ini bekerja dengan sempurna. Mulai saja PowerShell Anda dengan hak admin terlebih dahulu.
Erik Kalkoken
10

Cukup keluar dari shell dengan exitdan 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:~$
Louis
sumber
5
Ini tidak berfungsi lagi.
Dakkaron
@Dakkaron - Itu terjadi ketika pertanyaan diajukan.
Ramhound
1
Itu sebabnya saya berkata "lagi". Informasi bahwa posting ini sudah usang adalah penting, sehingga orang lain yang memiliki masalah saat ini tidak perlu mencobanya untuk mengetahui bahwa itu tidak berfungsi. Saya tidak yakin bagaimana hal-hal ditangani di sini, tetapi pada Stackoverflow jawaban tidak hanya seharusnya membantu orang yang mengajukan pertanyaan, tetapi juga semua orang lain yang mencari solusi untuk masalah yang sama.
Dakkaron
Secara khusus, itu tidak berfungsi sejak itu Windows 10 Build 17046. @Louis maukah kamu mengedit ini menjadi jawabanmu?
Dakkaron
Bekerja untuk saya pada build 17134.
Ian Kemp
7

Cukup buka jendela cmd sebagai adminstrator dan jalankan perintah ini untuk memulai kembali.

net stop LxssManager
net start LxssManager
normarth
sumber
1
Tambahkan beberapa detik di antara kedua perintah itu. mis. timeout /t 3perintah (tambahkan 3 detik).
Biswapriyo
2
Ini menggandakan jawaban samdd dari Agustus.
fixer1234
Tidak berfungsi ... tetap dalam status "berhenti". ketika saya mencoba untuk menjalankannya lagi saya mendapatkan "Layanan ini mulai atau berhenti. Silakan coba lagi nanti." ... tidak pernah selesai. Selalu hang setelah saya menjalankan perintah rsync dari batch seperti "bash -c 'rsync ....'". Ini mimpi buruk.
Gunling atau
"Layanan LxssManager berhenti ............................................ ............................. Layanan LxssManager tidak dapat dihentikan. " : - /
Alex Jansen
4

Saya telah membuat *.batfile, 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.batfile, 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 scperintah lagi.

Catatan: satu harus me-reboot "kernel" WSL ketika dia memformat drive berhuruf melalui Windows Explorer. Namun, tidak cukup menyelesaikan produk sampingan, di mana lsperintah 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'/
...
Lingfeng
sumber
mengapa scalih - alih net, seperti dalam jawaban @ samdd
Gaia
1
Saya kira nettidak bekerja dengan Windows 10 saya pada saat itu? scpasti bekerja saat itu. Saya seharusnya menentukan nomor build windows.
llinfeng