Middle
17
Что такое сигналы? Какие знаешь? Чем отличается SIGTERM от SIGKILL?
Companies where asked
Answer from AI
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