Sobes.tech
Junior

Aký je rozdiel medzi signálmi SIGTERM a SIGKILL?

sobes.tech AI

Odpoveď od AI

SIGTERM — je signál pre zdvorilé ukončenie procesu. Oznamuje procesu, že by sa mal ukončiť, čo mu umožňuje vykonať čistenie (napríklad uloženie dát, zatvorenie spojení). Proces môže tento signál ignorovať.

SIGKILL — je signál pre nútené ukončenie procesu. Okamžite zastaví proces, bez toho, aby mu dal možnosť vykonať akékoľvek čistenie. Tento signál nemôže byť zachytený alebo ignorovaný procesom.

Hlavné rozdiely:

Vlastnosť SIGTERM SIGKILL
Účel Zdvorilé ukončenie Nútené ukončenie
Spracovanie Môže byť zachytené a ignorované Nemôže byť zachytené alebo ignorované
Čistenie zdrojov Proces môže vykonať čistenie Proces nevykonáva čistenie

Príklad odoslania signálov:

# Odoslať SIGTERM procesu s PID 1234
kill 1234

# Odoslať SIGKILL procesu s PID 1234
kill -9 1234

V scenároch správy procesov (napríklad v init systémoch, orchestrátoroch), sa zvyčajne najskôr odošle SIGTERM, a ak proces neukončí v stanovenom čase, odošle sa SIGKILL.