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.