Odpowiedzi:
Przeczytaj dokumentację. To jedyny sposób. Jak już napisał Keith , pierwotne znaczenie SIGHUP było takie, że użytkownik stracił dostęp do programu, dlatego programy interaktywne powinny umrzeć. Demony - programy, które nie komunikują się bezpośrednio z użytkownikiem - nie potrzebują tego zachowania i zamiast tego często ponownie ładują swoje pliki konfiguracyjne po otrzymaniu SIGHUP. Ale to tylko konwencje.
Jeśli masz źródło, możesz je również przeczytać. Lub jeśli masz tylko plik binarny, możesz spróbować go zdemontować, poszukać sigaction
wywołań, które konfigurują procedurę obsługi sygnału SIGHUP
i spróbować dowiedzieć się, co robią te procedury obsługi sygnału. Łatwiej będzie przede wszystkim nie wysyłać SIGHUP do tego programu.
W dowolnym momencie dany proces znajduje się w jednym z trzech stanów w odniesieniu do określonego sygnału: zignorowanie go, wykonanie domyślnej akcji lub uruchomienie niestandardowej procedury obsługi. Wiele jednorożców pozwala zobaczyć maskę sygnału procesu ps
, np ps s
. W systemie Linux. To może ci powiedzieć, czy proces ignoruje sygnał lub zginie natychmiast po SIGHUP, ale jeśli proces ustawił moduł obsługi, nie możesz powiedzieć, co robi moduł obsługi.
Domyślnym działaniem jest zakończenie procesu przy SIGHUP. Zobacz man 7 signal
po więcej szczegółów. Ale programy mogą go uwięzić i robić, co chcą. Ponieważ procesy demonów nigdy nie powinny się kończyć, zwykle używają SIGHUP do innych celów, takich jak ponowne inicjowanie się (jak robi to pppd). Firefox zachowuje akcję domyślną.