Jaka jest różnica między SIGKILL a SIGSTOP?

20

Podręcznik opisuje SIGKILLi SIGSTOPlubi to:

SIGKILL             9    Term    Kill signal
SIGTERM            15    Term    Termination signal
SIGSTOP      17,19,23    Term    Stop the process

i stwierdza:

Sygnałów SIGKILL i SIGSTOP nie można złapać, zablokować ani zignorować.

ale jaka jest różnica między 2 sygnałami?

qdii
źródło
Superset pytanie na SO: stackoverflow.com/questions/4042201/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Odpowiedzi:

16

Jak można znaleźć na Wikipedii

SIGKILL

Sygnał SIGKILL jest wysyłany do procesu, który powoduje jego natychmiastowe zakończenie. W przeciwieństwie do SIGTERM i SIGINT, tego sygnału nie można wychwycić ani zignorować, a proces odbierania nie może wykonać żadnego czyszczenia po otrzymaniu tego sygnału.

SIGSTOP

Sygnał SIGSTOP instruuje system operacyjny, aby zatrzymał proces w celu późniejszego wznowienia.

Maggy May
źródło
Może ci się również spodobać, że SIGINT jest sygnałem, który jest emitowany po naciśnięciu CTRL + C na terminalu. SIGSTOP NIE jest sygnałem wysyłanym po naciśnięciu CTRL + Z - ten w rzeczywistości jest SIGTSTP i w przeciwieństwie do SIGSTOP może zostać zignorowany przez proces.
shellbro
26

SIGKILL zabija proces i nie można go złapać

SIGTERM zabija proces, ale można go przyłapać na wdzięcznym wyjściu

SIGSTOP zawiesza proces, dopóki nie zrobisz SIGCONT

parkydr
źródło
4

Jak sama nazwa wskazuje, SIGKILLzabij proces, zamiast tego SIGSTOPzatrzymaj proces, aż SIGCONTzostanie wywołany (aby kontynuować proces).

antoox
źródło