Czasami jestem trochę zdezorientowany wszystkimi sygnałami, które może odbierać proces. Jak rozumiem, proces ma domyślny moduł obsługi ( rozmieszczenie sygnałów ) dla każdego z tych sygnałów, ale może zapewnić własny moduł obsługi przez wywołanie sigaction()
.
Oto moje pytanie: co powoduje wysłanie każdego z sygnałów? Zdaję sobie sprawę, że za pomocą -s
parametru można ręcznie wysyłać sygnały do uruchomionych procesów kill
, ale jakie są naturalne okoliczności, w których sygnały te są wysyłane? Na przykład kiedy SIGINT
zostanie wysłany?
Czy istnieją również ograniczenia dotyczące obsługiwanych sygnałów? Czy SIGSEGV
można przetwarzać nawet sygnały i zwracać kontrolę do aplikacji?