Quá trình giết chết
Nói chung để giết một quá trình, không có cách nào an toàn hơn để giết một quá trình hơn là giết thường xuyên (SIGTERM). Trong trường hợp đó là một quá trình tương tác, nó thường cho phép bạn dừng nó thậm chí an toàn hơn bằng cách gửi tín hiệu SIGINT, thường được gửi bằng cách nhấn Ctrl+ C. Tín hiệu này đang bị giữ lại bởi chính quá trình có thể lắng nghe nó - và thường dừng lại một cách duyên dáng. ( cảm ơn Eliah )
Cơ sở dữ liệu DPKG
Về quản lý gói là một loại trường hợp đặc biệt. Cơ sở dữ liệu DPKG mà các lệnh APT sử dụng dưới nước luôn có thể phát hiện xem một hoạt động chưa kết thúc. Mọi gói đều có trạng thái thực tế được đánh dấu cũng như trạng thái hiện tại , ví dụ như đã giải nén, được cấu hình, v.v. Bằng cách giết giao diện APT, cơ sở dữ liệu sẽ ở trạng thái bị hỏng, nhưng ở trạng thái đã biết . Các tệp khóa sẽ chỉ được phát hành khi tất cả trở lại trạng thái sạch - bạn nên sửa lỗi này cho đến khi nó cho phép các hoạt động mới.
Cách khắc phục chỉ là kích hoạt một quy trình để có được tất cả các gói ở trạng thái được cấu hình. Thực tế mà nói, nếu bạn bị gián đoạn một apt-get
thao tác, bạn có thể hoàn thành nó sau bằng cách sử dụng
sudo dpkg --configure -a
Nó biết làm thế nào để phục hồi từ trạng thái bị hỏng thành trạng thái được cấu hình toàn bộ và theo nghĩa đó chỉ cần tiếp tục từ nơi nó bị gián đoạn. Các tệp khóa được để ở đó cho đến khi bạn hoàn thành điều đó và đó là lý do - để ngăn các hoạt động mới với cơ sở dữ liệu DPKG ở trạng thái ô uế.
Về SIGKILL (9)
Gửi một SIGKILL (đại diện thập phân 9) là rất không an toàn. Tín hiệu này không bị bắt bởi quá trình, nhưng toàn bộ quá trình sẽ được dọn sạch bởi hệ điều hành (kernel) cho dù tiến trình có thích hay không. Trạng thái của các tệp trên hệ thống tệp có thể bị bỏ lại ở trạng thái bị hỏng. Không bao giờ gửi các tín hiệu này trừ khi nó không nghe các tín hiệu duyên dáng khác nữa.