Signal handling — обработка системных сигналов, которые ОС отправляет процессу. Основные: SIGTERM (завершись корректно), SIGINT (Ctrl+C), SIGKILL (убить немедленно, нельзя перехватить). В Go подписываешься через signal.Notify(ch, syscall.SIGTERM, syscall.SIGINT). Создаёшь канал, ждёшь на нём сигнала, при получении — graceful shutdown: перестаёшь принимать новые запросы, дожидаешься завершения текущих, закрываешь соединения с базой, выходишь. Без обработки сигналов процесс убивается мгновенно, и текущие запросы обрываются на полуслове.