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.