Trong màn hình hệ thống, sự khác biệt giữa Kill Process và End Process là gì?


14

Khi tôi muốn giết một tiến trình thông qua System Monitor, tôi được trình bày với 2 cách nhanh chóng là Kill Process và End Process. sự khác biệt giữa hai cái đó là gì?

Câu trả lời:


9

Theo hướng dẫn của Trình giám sát hệ thống, thông thường bạn nên sử dụng "Quá trình kết thúc" và chỉ khi điều đó không sử dụng "Quá trình hủy":

Bạn thường chấm dứt một quy trình chỉ khi bạn không thể kết thúc quy trình một cách bình thường như được mô tả trong Để kết thúc một quy trình.

Ở cấp độ kỹ thuật, điều này khiến tôi nghĩ rằng End Process gửi SIGQUIT, cho phép quá trình bẫy và thực hiện dọn dẹp nếu cần, nhưng nếu thất bại, Kill Process nên gửi SIGKILL để chấm dứt quá trình một cách dữ dội, mà không có cơ hội phục hồi. Sử dụng một cách tiết kiệm!


6
SIGTERM là cách "lịch sự" để đóng chương trình, đó là những gì "Quá trình kết thúc" gửi. gnu.org/software/libc/manual/html_node/Termination-Signals.html
Rick

8

Tôi cũng tò mò, vì vậy tôi chỉ duyệt qua mã nguồn và tìm thấy bên dưới trong application.cpp . Có nhiều mã hơn nhưng tôi nghĩ những thứ này tương quan với các tùy chọn, ít nhất là cho System Monitor 3.8.2.1 đến 3.19.3:

  • Dừng tiến trình = SIGSTOP ( tín hiệu tạm dừng , hãy để bạn tiếp tục sau với SIGCONT, không giết tiến trình)
  • Kết thúc quá trình = SIGTERM ( tín hiệu kết thúc , đúng cách, ứng dụng có thể chặn tín hiệu này và thực hiện các tác vụ tắt máy như dọn dẹp tệp tạm thời)
  • Kill Process = SIGKILL ( tín hiệu tiêu diệt , cực đoan, chỉ sử dụng nếu SIGTERM không hoạt động, sẽ không thực hiện các tác vụ tắt máy)

Xem câu hỏi này trên Quora về các tín hiệu SIGINT, SIGTERM, SIGKILL và SIGSTOP để được giải thích tốt về tất cả các tín hiệu tiêu diệt / thoát / tắt và sự khác biệt của chúng.

Mã nguồn nổi bật

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.