Làm thế nào tôi có thể giết một quá trình không thể thành công?


13

Tôi đã đóng một ứng dụng, nhưng quá trình vẫn nằm trong danh sách. Tôi cố gắng dừng lại từ trình quản lý tác vụ, nhưng không có gì xảy ra. Không có thông báo lỗi, quá trình chỉ nằm trong danh sách. Tôi cố gắng gỡ lỗi nó, nhưng trình gỡ lỗi nói:

Không thể gắn vào quá trình sụp đổ. Các hoạt động được yêu cầu không được hỗ trợ.

Điều này xảy ra với VS2008 và một số chương trình khác, đôi khi.

Làm thế nào để chấm dứt nó?


Đó là một trong những lý do tôi chuyển sang Linux. Mặc dù tôi đã gặp vấn đề này trong Win XP, nhưng có vẻ như nó đã không thay đổi kể từ đó.
petersohn

4
Theo samba.2283325.n4.nabble.com/ Trực có chính xác tình huống tương tự trong Linux - các quy trình chờ trên kernel là không thể thực hiện được. Đây là một trong những lý do tôi chuyển sang Windows.
ta.speot.is

Bài viết "Các quy trình không thể phá hủy" của Mark Russinovich nói rằng bạn có thể sử dụng công cụ gỡ lỗi kernel-kernel để tìm hiểu lý do tại sao một quy trình không thể thực hiện được. Bài viết cung cấp cho bạn hướng dẫn về những gì cần làm. Bạn sẽ cần các Công cụ gỡ lỗi phần mềm miễn phí cho Windows .
không thể

Câu trả lời:


12

Thật không may, cách duy nhất thực sự là khởi động lại.

Tôi cũng gặp vấn đề này và tôi hoàn toàn không thể tìm ra cách tiêu diệt thành công quá trình bị rơi. Tôi đã thử mọi ứng dụng tương tự / ứng dụng tương tự mà tôi có thể tìm thấy và tất cả đều thất bại.

Theo tôi hiểu, nguyên nhân phổ biến nhất của vấn đề này là khi quá trình vi phạm tải trình điều khiển hệ thống, và sau đó gửi cho nó một yêu cầu mà nó không hoàn thành. Rõ ràng hạt nhân không thể phân bổ bộ nhớ chính xác khỏi quy trình khi nó đóng vì trình điều khiển bị hỏng ở trạng thái chờ IO yêu cầu quyền truy cập vào không gian địa chỉ quy trình.

(Chủ yếu là từ cũi từ) http://bloss.technet.com/markrussinovich/archive/2005/08/17/unkillable- Processes.aspx


2
Yup, đó chắc chắn là nguyên nhân phổ biến nhất của loại điều này. Hầu hết các quy trình không thành công mà tôi đã thấy đều liên quan đến ổ đĩa CD (ví dụ EAC.EXE) hoặc bộ điều chỉnh TV / thẻ video (ví dụ ATIMMC.EXE). Trong cả hai trường hợp, đó là do lỗi của trình điều khiển và bất kỳ ai đã học và làm công việc lái xe đều sẽ biết những thứ có vấn đề có thể xảy ra ở cấp độ đó như thế nào và những hiệu ứng có vẻ kỳ lạ mà họ có thể có trong vùng người dùng (ít nhất là BSOD dứt khoát và rõ ràng).
Synetech

1
@ Synetech inc. - Tất cả các vấn đề tôi gặp phải đều liên quan đến đĩa hoặc trong phần mềm thực sự không cần trình điều khiển (Tôi KHÔNG biết tại sao quyết định họ cần chạy trong kernel). Tôi không nghĩ rằng bạn có thể đưa ra bất kỳ tuyên bố nào về loại phần mềm nào thường gặp sự cố không thể giết được.
Tên giả

3

Process Hacker có lệnh Khác → Terminator sẽ thử một loạt các phương thức khác nhau để giết tiến trình của bạn:

thất bại trên hầu hết các nỗ lực

mô tả đầy đủ

Trong các thử nghiệm của tôi, tất cả những gì đã làm là khóa Process Hacker và biến nó thành một quy trình không thể thực hiện được, nhưng có thể nó sẽ hoạt động trong một số trường hợp.


2
Terminator đã bị xóa khỏi Process Hacker và chuyển vào một plugin. Có một chủ đề diễn đàn về nó. Nhà bảo trì tuyên bố: "Terminator là vô dụng ... bởi vì nó không hiệu quả hơn chức năng chấm dứt thông thường." Một số người trả lời và không đồng ý.
không thể

Sau đó, dmex đã chuyển Terminator thành một plugin. Mã nguồn ở đây . Theo văn bản này, không có nhị phân chưa . Khi nhị phân được phát hành, nó sẽ được xuất bản lên trang phát hành dmex .
không thể

1
Tôi vừa gửi một yêu cầu tính năng , yêu cầu một phiên bản được biên dịch của Terminator. Hiện tại, tôi đoán bạn có thể sử dụng bất kỳ phiên bản Process Hacker nào cũ hơn 2,39. Ví dụ: bạn có thể sử dụng phiên bản 2.38, có sẵn ở đây .
không thể

Ngoài ra còn có tùy chọn mà trình gỡ lỗi được đính kèm và lý do không giết là vậy. Linh tinh phát hiện ra điều đó và thêm trình gỡ lỗi tách rời
Ghita

2

Đôi khi quá trình có thể bị chặn trên một tài nguyên hoặc luồng hoặc một cái gì đó, và thoát hoặc giải phóng nó, giải phóng quá trình và cho phép nó kết thúc. Nó tương tự như cách bạn xóa (vào thùng rác) một tệp trong Explorer đang sử dụng, nó không thực sự biến mất và dường như bị kẹt (mà không trả lại ngay lỗi sử dụng / bị khóa), nhưng nếu bạn thoát khỏi chương trình đã bị khóa trong vòng năm giây, tập tin đột nhiên biến mất.

Tôi đã thấy điều này xảy ra trong một dịp, đặc biệt là với các chương trình có hộp thoại bật lên hoặc một cái gì đó bị ẩn đi; tìm cách loại bỏ hộp thoại cho phép luồng kết thúc, do đó cho phép quá trình kết thúc.

Tôi nghi ngờ rằng với sự gia tăng, nhưng vẫn còn tương đối mới thực hành lập trình đa luồng, những thứ như thế này sẽ trở nên phổ biến hơn, ít nhất là trong một thời gian.


0

Có khả năng các chương trình bạn đang sử dụng đã được phát triển trước Windows Vista / 7 và không tương thích với các thay đổi được thực hiện.

Đặt cược tốt nhất của bạn là xác định vị trí thực thi cho các chương trình có vấn đề này, nhấp chuột phải, vào thuộc tính, sau đó chọn tính tương thích, cuối cùng chọn Windows XP làm chế độ tương thích.


0

khởi chạy CMD với tư cách quản trị viên và sử dụng taskkill để tắt nó. Thí dụ:

taskkill / F yourprogram.exe

HOẶC LÀ

taskkill / F / im yourprogram.exe

Nếu bạn bị mắc kẹt với cú pháp tác vụ của CMD, hãy nhập taskkill /?


1
Chào mừng bạn đến với Siêu người dùng! Mặc dù điều này có thể giúp giải quyết vấn đề, nhưng nó không giải thích được tại sao và / hoặc cách giải quyết vấn đề. Cung cấp bối cảnh bổ sung này sẽ cải thiện đáng kể giá trị giáo dục lâu dài của nó. Vui lòng chỉnh sửa câu trả lời của bạn để thêm giải thích, bao gồm những gì các tham số làm và những hạn chế và giả định áp dụng. Cảm ơn.
fixer1234

LRI: Không thể chấm dứt quá trình "AutoHotkeyU64_UIA.exe" với PID 16872. Lý do: Không có phiên bản đang chạy của tác vụ.
Shaya
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.