Sobes.tech
Middle
16

Что такое сигналы? Какие знаешь? Чем отличается SIGTERM от SIGKILL?

Компании, где спрашивали
OZONOZON

Ответ от нейросети

sobes.tech AI

Сигналы — это механизмы в Unix-подобных системах для асинхронного уведомления процессов о событиях (например, прерывание, завершение, ошибки). Они позволяют управлять процессами и реагировать на системные события.

Основные сигналы:

  • SIGINT — прерывание (обычно Ctrl+C)
  • SIGTERM — запрос на корректное завершение процесса
  • SIGKILL — немедленное завершение процесса без возможности обработки
  • SIGHUP — сигнал о разрыве соединения, часто используется для перезагрузки конфигурации

Отличие SIGTERM от SIGKILL:

  • SIGTERM (15) — это дружелюбный запрос на завершение процесса. Процесс может поймать этот сигнал, выполнить очистку и корректно завершиться.
  • SIGKILL (9) — принудительное завершение процесса, которое нельзя перехватить или игнорировать. Процесс завершается немедленно без возможности очистки.

Пример обработки SIGTERM в Python:

import signal
import sys

def handler(signum, frame):
    print('Получен SIGTERM, завершаюсь...')
    sys.exit(0)

signal.signal(signal.SIGTERM, handler)

# Долгий цикл
while True:
    pass