Sobes.tech
Middle

Mis on signaalid? Milliseid tead? Mis vahe on SIGTERM ja SIGKILL vahel

sobes.tech AI

Vastus AI-lt

Signaalid on mehhanismid Unix-ilaadsetes süsteemides, mis võimaldavad asünkroonselt teavitada protsesse sündmustest (näiteks katkestused, lõpetamised, vead). Need võimaldavad protsesse juhtida ja reageerida süsteemi sündmustele.

Peamised signaalid:

  • SIGINT — katkestus (tavaliselt Ctrl+C)
  • SIGTERM — taotlus protsessi korrektseks lõpetamiseks
  • SIGKILL — protsessi kohene lõpetamine ilma töötlemisvõimaluseta
  • SIGHUP — ühenduse katkestamise signaal, mida sageli kasutatakse konfiguratsiooni uuesti laadimiseks

Erinevus SIGTERM ja SIGKILL vahel:

  • SIGTERM (15) — sõbralik taotlus protsessi lõpetamiseks. Protsess võib seda signaali tabada, teha puhastust ja õigesti lõpetada.
  • SIGKILL (9) — sunnitud protsessi lõpetamine, mida ei saa tabada ega ignoreerida. Protsess lõpeb kohe ilma puhastusvõimaluseta.

Python näide SIGTERM käsitlemisest:

import signal
import sys

def handler(signum, frame):
    print('Saadud SIGTERM, lõpetan...')
    sys.exit(0)

signal.signal(signal.SIGTERM, handler)

# Pikk tsükkel
while True:
    pass