Как работать с os/signal в Go?

Middle
190 просмотров
AFK Offer AI

Создаёшь канал и регистрируешь его через signal.Notify(ch, syscall.SIGTERM, syscall.SIGINT). Потом <-ch блокируется до получения сигнала. Типичный паттерн: получил SIGTERM → запускаешь graceful shutdown (закрываешь listener, ждёшь in-flight requests, закрываешь DB). signal.NotifyContext (Go 1.16) возвращает context, который отменяется при сигнале — удобнее интегрируется с остальным кодом.

Следующий вопрос

Что такое bufconn для gRPC тестов?