Câu trả lời:
Đọc tài liệu của nó. Đó là cách duy nhất. Như Keith đã viết , ý nghĩa ban đầu của SIGHUP là người dùng đã mất quyền truy cập vào chương trình và vì vậy các chương trình tương tác sẽ chết. Daemon - các chương trình không tương tác trực tiếp với người dùng - không cần hành vi này và thay vào đó thường tải lại các tệp cấu hình của họ khi họ nhận được SIGHUP. Nhưng đây chỉ là những quy ước.
Nếu bạn có nguồn, bạn cũng có thể đọc nó. Hoặc nếu bạn chỉ có nhị phân, bạn có thể thử tháo rời nó, tìm kiếm các sigaction
cuộc gọi thiết lập trình xử lý tín hiệu SIGHUP
và cố gắng tìm hiểu xem các trình xử lý tín hiệu đó đang làm gì. Sẽ dễ dàng hơn khi sắp xếp không gửi SIGHUP đến chương trình đó ngay từ đầu.
Tại bất kỳ thời điểm nào, một quy trình nhất định đều thuộc một trong ba trạng thái liên quan đến một tín hiệu cụ thể: bỏ qua nó, thực hiện hành động mặc định hoặc chạy trình xử lý tùy chỉnh. Nhiều thông báo cho phép bạn xem mặt nạ tín hiệu của một quá trình ps
, ví dụ như ps s
trên Linux. Điều đó có thể cho bạn biết nếu quy trình đang bỏ qua tín hiệu hoặc sẽ chết ngay lập tức trên SIGHUP, nhưng nếu quy trình đã đặt trình xử lý, bạn không thể biết trình xử lý đó làm gì.
Hành động mặc định là chấm dứt quá trình trên SIGHUP. Xem man 7 signal
để biết thêm chi tiết. Nhưng các chương trình có thể bẫy nó và làm bất cứ điều gì họ muốn. Vì các quy trình daemon không bao giờ được yêu cầu thoát, chúng thường sử dụng SIGHUP cho các mục đích khác, chẳng hạn như tự khởi động lại (như pppd hiện). Firefox giữ hành động mặc định.