Có các chương trình Linux, ví dụ như vlc, khuyên bạn nên gõ ctrl+ chai lần để giết sự thực thi của chúng từ một thiết bị đầu cuối nếu chương trình không dừng sau lần đầu tiên.
Tại sao gõ ctrl+ chai lần hoạt động khi lần đầu tiên không hoạt động?
Có các chương trình Linux, ví dụ như vlc, khuyên bạn nên gõ ctrl+ chai lần để giết sự thực thi của chúng từ một thiết bị đầu cuối nếu chương trình không dừng sau lần đầu tiên.
Tại sao gõ ctrl+ chai lần hoạt động khi lần đầu tiên không hoạt động?
Câu trả lời:
Những gì nó làm là hoàn toàn ứng dụng cụ thể. Khi bạn nhấn ctrl+ c, trình giả lập thiết bị đầu cuối sẽ gửi tín hiệu SIGINT đến ứng dụng nền trước, kích hoạt "trình xử lý tín hiệu" thích hợp. Trình xử lý tín hiệu mặc định cho SIGINT chấm dứt ứng dụng. Nhưng bất kỳ chương trình nào cũng có thể cài đặt trình xử lý tín hiệu riêng cho SIGINT (bao gồm cả trình xử lý tín hiệu hoàn toàn không dừng thực thi).
Rõ ràng, vlc cài đặt một trình xử lý tín hiệu cố gắng thực hiện một số kết thúc dọn dẹp / kết thúc duyên dáng ngay lần đầu tiên được gọi và quay trở lại hành vi mặc định của việc thực thi ngay lập tức khi nó được gọi lần thứ hai.
SIGINT , tín hiệu được gửi bởi Ctrl+ C, theo quy ước sẽ cho một chương trình thoát ra khỏi vòng xử lý lệnh chính của nó hoặc nếu điều đó không có ý nghĩa, hãy thoát ra một cách sạch sẽ. Một số chương trình chạy quy trình dọn dẹp khi chúng nhận được SIGINT. Nếu chương trình như vậy là sai lầm rằng các thủ tục dọn dẹp thất bại, trong một số chương trình, một giây Ctrl+ Clàm cho chương trình bỏ ngay lập tức. Làm điều này là tùy thuộc vào mỗi tác giả chương trình.
Nếu một giây Ctrl+ Ckhông giết chết chương trình, hãy thử Ctrl+ \, gửi SIGQUIT , một (tín hiệu nhưng vẫn catchable) dữ dội hơn, hoặc thử Ctrl+ Zđể đình chỉ các chương trình và sau đó là kill
lệnh (ví dụ kill %1
mà gửi SIGTERM , một tín hiệu thông thường ít bạo lực hơn SIGQUIT, đến công việc số 1). Nếu vẫn thất bại, hãy hủy chương trình với kill -KILL
, còn được gọi là kill -9
, gửi tín hiệu không thể so sánh SIGKILL .