Sobes.tech
Junior

Jaka jest różnica między sygnałami SIGTERM a SIGKILL?

sobes.tech AI

Odpowiedź od AI

SIGTERM — to sygnał uprzejmego zakończenia procesu. Informuje proces, że powinien się zakończyć, dając możliwość wykonania czyszczenia (np. zapisanie danych, zamknięcie połączeń). Proces może zignorować ten sygnał.

SIGKILL — to sygnał wymuszonego zakończenia procesu. Natychmiast zatrzymuje proces, nie dając mu możliwości wykonania jakiegokolwiek czyszczenia. Ten sygnał nie może być przechwycony ani zignorowany przez proces.

Główne różnice:

Cecha SIGTERM SIGKILL
Cel Uprzejme zakończenie Wymuszone zakończenie
Obsługa Może być przechwycony i zignorowany Nie może być przechwycony ani zignorowany
Czyszczenie zasobów Proces może wykonać czyszczenie Proces nie wykonuje czyszczenia

Przykład wysyłania sygnałów:

# Wysyła SIGTERM do procesu o PID 1234
kill 1234

# Wysyła SIGKILL do procesu o PID 1234
kill -9 1234

W scenariuszach zarządzania procesami (np. w systemach inicjalizacji, orkiestratorach), zazwyczaj najpierw wysyła się SIGTERM, a jeśli proces nie zakończy się w wyznaczonym czasie, wysyła się SIGKILL.