Quá trình có cuộc gọi 'ngã ba' sau khi xử lý tín hiệu đã được đăng ký [đối với SIGINT]. điều gì sẽ xảy ra khi SIGINT được gửi thông qua dòng lệnh? cho dù cha mẹ được thoát hoặc con hoặc cả hai? cha mẹ và con cả hai đang chạy vô hạn trong khi vòng lặp.hành vi của cha mẹ và con đối với bộ xử lý tín hiệu
8
A
Trả lời
12
Nếu bạn làm fork
(không cần thêm exec*
) sau khi xử lý tín hiệu đã được đăng ký, trình xử lý tín hiệu tương tự sẽ được sử dụng trong quy trình cha và con. Tức là, nếu bạn làm điều gì đó khác với số exit
trong bộ xử lý SIGINT
của bạn, cả cha mẹ lẫn con sẽ không thoát ra (cách SIGINT
được gửi không liên quan ở đây).
Nếu bạn có nghĩa là một SIGINT
gửi từ terminal (bởi vintr
nhân vật mà thường là Ctrl+C
): nó sẽ được nhận bởi các quá trình sử dụng các thiết bị đầu cuối như kiểm soát thiết bị đầu cuối. Tức là, trừ khi bạn tách con hoặc cha mẹ khỏi thiết bị đầu cuối điều khiển, cả hai sẽ phản ứng với Ctrl+C
bằng cách gọi trình xử lý SIGINT
của bạn.
Các vấn đề liên quan
- 1. Hành vi của WaitForMultipleObjects khi nhiều xử lý tín hiệu cùng một lúc
- 2. Bộ xử lý tín hiệu SIGKILL
- 3. Xcode: GDB và bộ xử lý tín hiệu
- 4. XOPEN_SOURCE và xử lý tín hiệu
- 5. SIGKILL tín hiệu xử lý
- 6. tín hiệu Xử lý với sigaction
- 7. Vấn đề với xử lý tín hiệu, xử lý ngắt
- 8. PHP forking và nhiều tín hiệu con
- 9. container Xem Bộ xử lý - thông báo cho cha mẹ hành động
- 10. Thực hành tốt nhất để xử lý các bộ sưu tập cha-con NHibernate
- 11. Nhận tín hiệu: Sử dụng chức năng thành viên làm bộ xử lý tín hiệu
- 12. Xử lý tín hiệu trên Windows
- 13. xử lý tín hiệu và khai thác gỗ trong Python
- 14. tín hiệu xử lý trong C++
- 15. Xử lý tín hiệu bằng "TERM"
- 16. fork() quy trình con và cha mẹ
- 17. MySql: ORDER BY cha mẹ và con
- 18. Lập trình 'Nghe' với Âm thanh (Xử lý Tín hiệu?)
- 19. Css di chuột, cha mẹ và con
- 20. Gói Python để xử lý tín hiệu
- 21. Xử lý tín hiệu trong C
- 22. Gán Cùng SNO để cha mẹ và con của nó
- 23. luồng chủ/công nhân và xử lý tín hiệu
- 24. Bỏ qua tín hiệu SIGINT trong quá trình con
- 25. Làm thế nào để làm cho bộ xử lý tín hiệu Django không âm thầm khi một ngoại lệ gặp phải trong bộ xử lý tín hiệu?
- 26. Xử lý tín hiệu Erlang Linux
- 27. Xử lý tín hiệu với nhiều luồng trong Linux
- 28. (Lạ?) Hành vi tiền xử lý GCC
- 29. Hibernate @OneToMany với mối quan hệ mappedBy (cha mẹ con) và vấn đề bộ nhớ cache
- 30. Thực hành tốt nhất: Thêm nút con vào cha mẹ trong hàm tạo con hay không?
Nhưng trình xử lý tín hiệu được đăng ký trước ngã ba(), vì vậy trẻ không nên có bản sao. Sau ngã ba() đứa trẻ nên thực hiện các câu lệnh sau ngã ba(). đăng ký trình xử lý tín hiệu sẽ chỉ có trong phụ huynh. – Puneet
@Puneet Nó * được thừa kế bởi đứa trẻ, bất kể bạn nghĩ gì về nó * nên *. Xem 'man sigaction'. Có gì kỳ lạ về nó? Các bộ mô tả tệp được mở trước khi 'fork' được thừa kế. Điều duy nhất đặc biệt về các tín hiệu là các trình xử lý không mặc định, không bỏ qua * được đặt lại trên 'execve' & friends (vì địa chỉ của trình xử lý không có ý nghĩa gì trong tệp thực thi mới), nhưng không có gì xảy ra trên' fork'. –
Cảm ơn bạn ... nghi ngờ đã xóa ... – Puneet