SIGKILL
kéo tấm thảm ra khỏi quá trình chạy của bạn, chấm dứt nó ngay lập tức. Đối với các chương trình rất đơn giản, điều này là tốt; trong thực tế tuy nhiên có rất ít chương trình "đơn giản".
Dưới vỏ bọc, ngay cả các chương trình có vẻ tầm thường cũng làm tất cả các loại công việc giao dịch mà chúng cần phải dọn sạch trước khi chấm dứt (nghĩ về finally
khối trong Java và các ngôn ngữ lập trình khác), chẳng hạn như đóng tài nguyên xử lý, xóa các tệp tạm thời và xóa dữ liệu khỏi bộ nhớ vào đĩa. Bạn không thể lường trước được khi nào một chương trình có thể làm điều gì đó như thế này.
Nếu bạn may mắn, bạn sẽ không nhận thấy bất cứ điều gì không ổn nếu bạn gửi SIGKILL
, nhưng bạn không thể may mắn mãi mãi và bạn có thể không biết bất cứ điều gì sai trái cho đến khi quá muộn để khôi phục những gì đã mất.
Bạn gần như không bao giờ cần phải gửi một SIGKILL
, và bạn nên chắc chắn rằng bạn đã sử dụng hết các lựa chọn thay thế trước khi thực hiện. Trong nhiều trường hợp, việc khởi động lại (cuối cùng sẽ gửi SIGKILL
s đến các chương trình hoạt động sai) sẽ an toàn hơn so với việc tự gửi một cách thủ công SIGKILL
. Tôi có thể có thể đếm bằng một tay số lần tôi cần để gửi SIGKILL
(và có thể là tất cả các sản phẩm của riêng tôi).
Nói chung, bạn có thể sử dụng Ctrl+ C(sẽ gửi quá trình tiền cảnh a SIGINT
) hoặc SIGTERM
(như trong "chấm dứt") để hướng dẫn một quy trình dừng những gì nó đang làm và thoát.
Một số đọc thêm: