Sau khi xem màn hình Pragmatic Studio xuất hiện trên Erlang, video cuối cùng trên Giám sát đã đề cập rằng để người giám sát nhận được thông báo về một trong các con của nó để nó có thể khởi động lại đúng cách, trẻ em nên đăng ký với process_flag(trap_exit, true)
. Có lẽ tôi chỉ hiểu lầm tác giả (và rất có thể là RẤT cao mà tôi đã hiểu sai), nhưng tôi nghĩ những người giám sát tự động biết khi nào con cái của họ chết (có thể thông qua spawn_link hoặc một cái gì đó tương tự trong nền). Điều này có thực sự cần thiết không? Khi ta nên sử dụng process_flag (trap_exit, true) trong một trường hợp thế giới thực vì các tài liệu một cách rõ ràng tình trạng sau đây:Erlang và process_flag (trap_exit, true)
http://www.erlang.org/doc/man/erlang.html#process_flag-2
process_flag (trap_exit, Boolean)
Khi trap_exit được thiết lập đúng, các tín hiệu thoát đến một quy trình được chuyển thành các tin nhắn {'EXIT', From, Reason}, có thể nhận được dưới dạng tin nhắn thông thường. Nếu trap_exit được đặt thành false, quá trình sẽ thoát nếu nó nhận được tín hiệu thoát khác với tín hiệu thoát và tín hiệu thoát được truyền đến các quy trình được liên kết của nó. quá trình ứng dụng nên thường không bẫy exits.``
Sự cần thiết thiết lập cờ trap_exit trong ứng dụng OTP thực sự là một tình huống đặc biệt. Hầu hết các ứng dụng OTP không cần thiết lập cờ trap_exit một cách rõ ràng khi người giám sát được thiết kế để xử lý chúng một cách chính xác theo thông số kỹ thuật của trẻ. –