Khởi động lại Ubuntu trên Windows mà không cần khởi động lại Windows?


76

Có thể khởi động lại hệ thống con Ubuntu mà không cần khởi động lại hệ thống của tôi không?

Tôi đã thử sử dụng shutdownlệnh sau khi cài đặt một số cập nhật, nhưng dường như đó không phải là một tùy chọn ở đây.

Bash trên Windows.  Yêu cầu tái thiết lập.  Tắt máy: Không thể tắt hệ thống

Câu trả lời:


101

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>

Các phiên bản cũ hơn

# PowerShell (admin)
Restart-Service LxssManager

# CMD (admin)
net stop LxssManager
net start LxssManager

nhập mô tả hình ảnh ở đây


tại sao netthay vì sc, như trong câu trả lời của @ llinfeng
Gaia

netlàm việc trong cmd (với admin). Chỉ cần kiểm tra rằng tập tin bat của tôi sckhông hoạt động trong Windows OS Build 1809.
llinfeng

31

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 '.*'

Bạn có biết những gì tôi có thể làm buộc phải khởi động lại yêu cầu? Tôi muốn kiểm tra câu trả lời để tôi có thể chấp nhận nó.
Louis

1
Điều này làm việc cho tôi. Tôi đã phải sudo:sudo killall -r '.*'
F21

@Louis Tôi thấy bạn đã chấp nhận nó, nhưng bạn có thể làm được 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 đó.
nyuszika7h

1
killalllàm việc hoàn hảo cho tôi Không cần chạm vào reboot-required.
Giovanni Bassi

23

Tại dấu nhắc quản trị PowerShell: Restart-Service LxssManager


11
@RajeshS Nó có thể ngắn nhưng nó trả lời câu hỏi.
nyuszika7h

Tôi thích nó. Dễ nhớ, tự động hoàn thành với tab đủ tốt. Thật thú vị khi thấy Windows có mô hình dịch vụ tốt như thế nào ngay từ đầu.
Louis

2
Tôi chỉ nhận được điều này nhiều lầnWARNING: Waiting for service 'LxssManager (LxssManager)' to stop...
Chris Snow

Điều này hoạt động hoàn hảo. Chỉ cần bắt đầu quyền hạn của bạn với quyền quản trị viên đầu tiên.
Erik Kalkoken

10

Đơn giản chỉ cần thoát khỏi vỏ với exitvà 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:~$

5
Điều này không hoạt động nữa.
Dakkaron

@Dakkaron - Nó đã làm khi câu hỏi được gửi.
Ramhound

1
Đó là lý do tại sao tôi nói "nữa". Thông tin mà bài đăng này đã lỗi thời là rất quan trọng, vì vậy những người khác gặp vấn đề ngay bây giờ không cần phải thử nó để biết rằng nó không hoạt động. Tôi không chắc mọi thứ được xử lý ở đây như thế nào, nhưng trên Stackoverflow, một câu trả lời không chỉ được cho là giúp người hỏi, mà còn tất cả những người khác đang tìm giải pháp cho cùng một vấn đề.
Dakkaron

Cụ thể, nó không hoạt động kể từ đó Windows 10 Build 17046. @Louis bạn có phiền khi chỉnh sửa câu trả lời này không?
Dakkaron

Làm việc cho tôi trên bản dựng 17134.
Ian Kemp

7

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

1
Thêm một vài giây giữa hai lệnh đó. ví dụ timeout /t 3lệnh (thêm 3 giây).
Biswapriyo

2
Điều này trùng lặp câu trả lời của samdd từ tháng Tám.
fixer1234

Không hoạt động ... vẫn ở trạng thái "dừng". Khi tôi cố chạy lại, tôi nhận được "Dịch vụ đang bắt đầu hoặc dừng. Vui lòng thử lại sau." ... không bao giờ kết thúc. Luôn bị treo sau khi tôi chạy lệnh rsync từ lô như "bash -c 'rsync ....'". Đây là một cơn ác mộng.
xạ thủ

"Dịch vụ LxssManager đang dừng ............................................ ............................. Không thể dừng dịch vụ LxssManager. " : - /
Alex Jansen

4

Tôi đã tạo một *.battệ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.battệ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 sclệ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ụ, lslệ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'/
...

tại sao scthay vì net, như trong câu trả lời của @ samdd
Gaia

1
Tôi đoán netlúc đó không hoạt động với Windows 10 của tôi? scphải làm việc rồi Tôi nên đã chỉ định số lượng cửa sổ xây dựng.
llinfeng
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.