Hướng dẫn

Một dịch vụ kẹt ở Stopping...

Snap-in hiển thị Stopping và không bao giờ nhúc nhích. Câu trả lời thường thấy là Task Manager, đoán xem nó sống trong svchost.exe nào, và End task - việc này cũng kết thúc mọi dịch vụ khác trong tiến trình đó, mà không cho bạn biết đó là những dịch vụ nào.

Vì sao điều này xảy ra

  • Dịch vụ không trả lời yêu cầu dừng. Windows hỏi nó một cách lịch sự và chờ. Một dịch vụ đã treo, hoặc đang chờ thứ sẽ không quay lại, thì không bao giờ trả lời.
  • Có thứ phụ thuộc vào nó vẫn đang chạy. Trình quản lý từ chối lệnh dừng thay vì làm hỏng thứ kia, và snap-in hiển thị điều đó như một sự chờ.
  • Nó dùng chung tiến trình với những dịch vụ khác. Hầu hết dịch vụ Windows sống bên trong một svchost.exe dùng chung. Kết thúc tiến trình đó kết thúc tất cả, đúng như điều Task Manager làm mà không nêu tên chúng.

Hãy xem trước khi kết thúc bất cứ thứ gì

Hỏi xem việc kết thúc nó sẽ kéo theo những gì. Không có gì xảy ra cho đến khi bạn bỏ --dry-run.

$ bws kill Spooler --dry-run

Bản xem trước nêu tiến trình bằng số, nêu mọi dịch vụ khác sống trong đó, và hiển thị hai bước thay vì một: yêu cầu dịch vụ dừng, và chỉ khi điều đó không có tác dụng, kết thúc tiến trình. Một dịch vụ tự dừng thì không bao giờ bị kết thúc.

  • --force bỏ qua bước lịch sự và kết thúc tiến trình ngay. Nó thay đổi kế hoạch chứ không phải cách chạy, nên bản xem trước hiển thị một bước thay vì hai và sự khác biệt thấy được trước khi có gì xảy ra.
  • --restart đưa mọi thứ trở lại sau khi tiến trình đã mất - mục bạn hỏi và mọi thứ đã dùng chung tiến trình của nó. Không có nó, máy bị để lại với các dịch vụ đó đã dừng, và báo cáo nói cách khởi động chúng lại.
  • Lời từ chối đến trước nút bấm. Một trình điều khiển, một tiến trình mà hệ thống bảo vệ, một dịch vụ mà trình quản lý không chấp nhận lệnh dừng - bị từ chối khi kế hoạch được dựng, kèm lý do, chứ không phải sau sáu mươi giây chờ.
  • Một cảnh báo khi điều đó quan trọng. Nếu mục là thứ mà máy không hoạt động nếu thiếu, kế hoạch nói điều đó - dừng nó hạ cả máy, không chỉ dịch vụ.

Kết thúc một tiến trình là điều duy nhất công cụ này làm mà không ai có thể từ chối thay mặt máy. Đó là lý do nó là một lệnh riêng, lý do bản xem trước nêu tên mọi dịch vụ nó kéo theo, và lý do bước lịch sự đến trước trừ khi bạn nói khác.

Thứ tự an toàn hơn

  1. Xem nó là gì. bws show Spooler - tiến trình, những gì phụ thuộc vào nó, nó phụ thuộc vào gì, và liệu nó có nhận yêu cầu dừng hay không.
  2. Thử lệnh dừng thông thường, dưới dạng kế hoạch. bws stop Spooler --dry-run --dependents. Nếu câu trả lời là một lời từ chối, nó nói đó là lý do nào trong ba lý do.
  3. Nếu nó không chịu dừng, xem việc kết thúc nó tốn gì. bws kill Spooler --dry-run, và đọc danh sách các dịch vụ dùng chung tiến trình đó.
  4. Rồi làm, với một đường quay lại. bws kill Spooler --restart. Báo cáo kết thúc bằng những gì không hiệu quả và các lệnh đưa mọi thứ về chỗ cũ.

Cả bốn hoạt động giống nhau trong cửa sổ: nhấp chuột phải vào một hàng, chọn Force stop..., đọc kế hoạch, và nút bên dưới được đặt tên theo điều nó sẽ làm.

Vì sao không dùng Task Manager

Vì nó trả lời một câu hỏi khác. Task Manager biết về tiến trình còn vấn đề này là về dịch vụ, và hai thứ đó không khớp một-một.

Một svchost.exe dùng chung có thể chứa cả chục dịch vụ. Task Manager sẽ kết thúc nó mà không nói mười hai cái nào, không cái nào tự quay lại, và không có gì sau đó cho bạn biết điều gì đã dừng. Một EDR đánh dấu tiến trình kết thúc svchost.exe đang làm đúng việc của nó, và nó không thể phân biệt cú nhấp của bạn với bất cứ thứ gì khác.