Nếu tôi nhấn Ctrl + C, điều này sẽ ném một ngoại lệ (luôn nằm trong chuỗi 0?). Bạn có thể nắm bắt điều này nếu bạn muốn - hoặc, nhiều khả năng, chạy một số dọn dẹp và sau đó rethrow nó. Nhưng kết quả bình thường là đưa chương trình dừng lại, bằng cách này hay cách khác.Giết một số nhị phân Haskell
Bây giờ giả sử tôi sử dụng lệnh Unix kill
. Khi tôi hiểu nó, kill
về cơ bản sẽ gửi một tín hiệu Unix (cấu hình) đến quy trình được chỉ định.
Haskell RTS phản hồi như thế nào? Có tài liệu ở đâu đó không? Tôi sẽ tưởng tượng rằng việc gửi SIGTERM
sẽ có tác dụng tương tự như cách nhấn Ctrl + C, nhưng tôi không biết rằng đối với một thực tế ...
(Và dĩ nhiên, bạn có thể sử dụng kill
để gửi tín hiệu không có gì để làm với giết chết chút nào. Một lần nữa, tôi sẽ tưởng tượng rằng RTS sẽ bỏ qua, nói rằng, SIGHUP
hoặc SIGPWR
, nhưng tôi không biết chắc chắn.)
Ctrl-C gửi 'SIGINT'. Tôi mong đợi 'SIGTERM' được xử lý khác với' SIGINT'. –
Tôi nghĩ rằng có một hành động mặc định cho tất cả các tín hiệu được xác định bởi Posix và/hoặc hệ thống cụ thể, xem tại đây: http://man7.org/linux/man-pages/man7/signal.7.html (Cuộn xuống bàn). – bennofs
@bennofs Điều cần biết. Hành động mặc định cho 'SIGINT' dường như là chấm dứt quá trình, nhưng RTS xử lý rõ ràng đặc biệt này. Nó sẽ là tốt đẹp để biết nếu bất kỳ tín hiệu khác nhận được xử lý đặc biệt ... – MathematicalOrchid