Câu trả lời:
Tắt tất cả mọi thứ: Build 18917+
wsl --shutdown
Chấm dứt phân phối cụ thể: Windows 1903+
wsl -t <DistroName>
# PowerShell (admin)
Restart-Service LxssManager
# CMD (admin)
net stop LxssManager
net start LxssManager
net
làm việc trong cmd (với admin). Chỉ cần kiểm tra rằng tập tin bat của tôi sc
không hoạt động trong Windows OS Build 1809.
Kể từ phiên bản Windows 10 1803, việc đóng tất cả các cửa sổ đầu cuối WSL sẽ không giết các tiến trình nền theo mặc định, trừ khi có tệp /var/run/reboot-required
. Tệp này sẽ được apt tự động tạo trên Ubuntu khi bản cập nhật yêu cầu khởi động lại, nhưng nếu bạn muốn tự khởi động lại hệ thống con, bạn có thể tự tạo tệp:
sudo touch /var/run/reboot-required
Tôi chưa thử nghiệm điều này trên các bản phân phối khác có sẵn trong Microsoft Store. Một giải pháp thay thế là tự mình giết tất cả các quy trình:
sudo killall -r '.*'
sudo
:sudo killall -r '.*'
sudo touch /var/run/reboot-required
. Trên thực tế, có vẻ như sự hiện diện của tệp khiến WSL giết tất cả các quy trình nền và tắt hệ thống con khi tất cả các cửa sổ đầu cuối bị đóng, vì vậy bạn cũng có thể lạm dụng điều đó.
killall
làm việc hoàn hảo cho tôi Không cần chạm vào reboot-required
.
Tại dấu nhắc quản trị PowerShell: Restart-Service LxssManager
WARNING: Waiting for service 'LxssManager (LxssManager)' to stop...
Đơn giản chỉ cần thoát khỏi vỏ với exit
và mở lại dường như để thực hiện các mẹo.
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 bạn có phiền khi chỉnh sửa câu trả lời này không?
Chỉ cần mở một cửa sổ cmd là adminstrator và chạy các lệnh này để khởi động lại nó.
net stop LxssManager
net start LxssManager
timeout /t 3
lệnh (thêm 3 giây).
Tôi đã tạo một *.bat
tệp và chạy nó sẽ khởi động lại trong vòng 10 giây. (Tôi ngạc nhiên về cách mọi thứ được tải lại nhanh chóng. Và, xin vui lòng tư vấn nếu cách tiếp cận của tôi sẽ gây rắc rối nghiêm trọng trong thời gian dài.)
Đặt hai dòng sau vào một WSL_reboot.bat
tệp và chạy nó mỗi khi bạn cần khởi động lại WSL trên Windows 10.
net stop LxssManager
net start LxssManager
Lưu ý cập nhật : mỗi lần "nâng cấp" hệ điều hành Windows gần đây của tôi, Build 1809 không còn thích sc
lệnh nữa.
Lưu ý bên lề: người ta cần khởi động lại "kernel" WSL khi anh ấy / cô ấy định dạng một ổ đĩa chữ thông qua Windows Explorer. Tuy nhiên, không giải quyết được sản phẩm phụ, ls
lệnh sẽ gặp lỗi sau. Liên quan đến bài viết từ WSL @ Github ; Liên quan đến bài viết từ ngăn xếp . Sẽ bỏ một liên kết nếu tôi quản lý để giải quyết lỗi phụ phẩm.
ls: 'System Volume Information': Permission denied
...
d--x--x--x 1 llinfeng llinfeng 512 Jan 15 11:00 'System Volume Information'/
...
sc
thay vì net
, như trong câu trả lời của @ samdd
net
lúc đó không hoạt động với Windows 10 của tôi? sc
phải làm việc rồi Tôi nên đã chỉ định số lượng cửa sổ xây dựng.
net
thay vìsc
, như trong câu trả lời của @ llinfeng