SIGKILL nigdy nie zabija uruchomionego procesu, o to właśnie chodzi. Istnieją inne sygnały, które dają aplikacji szansę na reakcję.
Domyślne zachowanie SIGINT, SIGTERM, SIGQUIT i SIGHUP to zabicie programu. Jednak aplikacje mogą instalować moduł obsługi tych sygnałów. Tak więc faktyczne zachowanie aplikacji po otrzymaniu tych sygnałów jest kwestią konwencji (do której każda aplikacja może się stosować lub nie), a nie projektu systemu.
SIGINT jest „najsłabszym” ze wszystkich. Jego konwencjonalne znaczenie to „przestań robić to, co teraz robisz i czekaj na dalsze informacje od użytkowników”. Jest to sygnał generowany przez Ctrl+ Cw terminalu. Programy nieinteraktywne ogólnie traktują to jak SIGTERM.
SIGTERM to „normalny” sygnał zabicia. Mówi aplikacji, aby zakończyła się czysto. Aplikacja może potrzebować czasu, aby zapisać swój stan, aby zwolnić zasoby, takie jak pliki tymczasowe, które w przeciwnym razie pozostałyby w tyle, itp. Aplikacja, która nie chce być przerywana podczas krytycznej aplikacji, może na chwilę zignorować SIGTERM.
SIGHUP jest mniej więcej taki sam jak SIGTERM pod względem szorstkości, ale ma określoną rolę, ponieważ jest automatycznie wysyłany do aplikacji działających w terminalu, gdy użytkownik rozłącza się z tym terminalem (etymologicznie, ponieważ użytkownik łączył się przez linię telefoniczną i modem rozłączyć się). SIGHUP jest często mimowolny, w przeciwieństwie do SIGTERM, który musi być wysyłany jawnie, więc aplikacje powinny próbować zapisać swój stan na SIGHUP. SIGHUP ma również zupełnie inne konwencjonalne znaczenie dla aplikacji nieprzeznaczonych dla użytkownika ( demony ), czyli do ponownego ładowania pliku konfiguracyjnego.
SIGQUIT to najostrzejszy z możliwych do zapamiętania sygnałów. Jest przeznaczony do użycia, gdy aplikacja działa nieprawidłowo i musi zostać teraz zabita, i domyślnie pozostawił plik zrzutu pamięci (nowoczesne systemy, w których większość użytkowników nie wiedziałaby, jaki plik podstawowy zwykle nie tworzy) . Aplikacje mogą ustawić moduł obsługi, ale powinny robić bardzo niewiele (w szczególności nie zapisywać żadnego stanu), ponieważ intencją SIGQUIT jest użycie, gdy coś jest naprawdę nie tak.
HUP
niekoniecznie oznacza, że program zostanie zamknięty. Niektóre programy używająSIGHUP
do przeładowywania plików konfiguracyjnych.SIGKILL
kończy się niepowodzeniem, a raczej zostaje przełożone, gdy proces znajduje się w nieprzerwanym śnie .