Czy SIGQUIT jest tym samym co SIGTERM?

14

Uczę się CentOS / RHEL i obecnie zajmuję się zarządzaniem procesami.

Książka RHCSA, którą czytam, opisuje bieganie kill 1234jako wysyłanie SIGQUIT. Zawsze myślałem, że polecenie zabicia bez dodawania przełącznika typu sygnału powinno być ustawione domyślnie nakill -15

SIGTERM jest, kill -15a SIGKILL jest kill -9, prawda?

Czy CentOS / RHEL używa nieco innej metody, kill -15czy właśnie się pomyliłem?

EDYCJA: kill -ldaje SIGQUIT as kill -3i wydaje się, że jest to związane z używaniem klawiatury do zakończenia procesu. man 7 signalstwierdza również, że SIGQUIT jest kill -3, więc mogę jedynie założyć, że moja książka nie ma racji, twierdząc, że SIGQUIT jest kill -15domyślny.

bitofagoob
źródło

Odpowiedzi:

13

Nie, to nie to samo. Domyślną czynnością dla obu jest zakończenie procesu, ale SIGQUITtakże zrzut pamięci rdzenia. Zobacz np . Stronęsignal(7) podręcznika systemu Linux . killdomyślnie wysyła SIGTERM, więc mogę sobie tylko wyobrazić, że wzmianka o domyślnym SIGQUIT jest rzeczywiście tylko pomyłką. Że domyślnie jest w POSIX , a więc są numery dla SIGTERM, SIGKILL i SIGQUIT.

ilkkachu
źródło
1
Tak. Myślę, że książka jest w błędzie, ponieważ na liście SIGQUIT znajduje się również -15. Signal -15 to tak ustalony sposób zakończenia procesu w świecie Linuksa, nie ma wątpliwości, że jest to błąd w druku. Oznaczę twoją odpowiedź jako poprawną. Dziękujemy za rozwinięcie tego, co robi SIGQUIT.
bitofagoob
1

Istnieją dwa polecenia zabicia, jedno w procps i jedno w powłoce. Oba używają SIGTERM jako domyślnego. W przypadku procps kill, pomoc polecenia, strona podręcznika i źródło kill (skill.c linia 724 w najnowszej gałęzi master) mówią SIGTERM, co dobrze wiedzieć, że jest spójne.

Jedną rzeczą, o której należy pamiętać, jest to, że kiedy zaczniesz mijać „zwykłą grupę” i użyjesz systemów nieco bardziej różniących się od systemu Linux x86, może się okazać, że sygnałów nie ma lub mają one różne liczby. procps (i prawdopodobnie wiele innych programów) wstawia liczby w czasie kompilacji (zasadniczo cokolwiek zawiera plik dołączania, poszukaj signum.h).

Nie ma się czym martwić dla SIGTERM, jak mówi @ilkkachu, jest w POSIX.

Craig Small
źródło
strona umiejętności mówi, że umiejętności i przekleństwa są przestarzałe. Zastanawiam się, dlaczego nie zostały usunięte z przestrzeni użytkownika? W każdym razie ciekawe informacje. Dzięki.
bitofagoob