Вопрос: Как сделать graceful shutdown HTTP-сервера по сигналу?

Go Senior Без компании
Вопрос: Как сделать graceful shutdown HTTP-сервера по сигналу?
Ответы
```go srv := &http.Server{Addr: ":8080", Handler: mux} ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM) defer stop() go func() { _ = srv.ListenAndServe() }() <-ctx.Done() shutdownCtx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() _ = srv.Shutdown(shutdownCtx) ``` **Как это работает:** `Shutdown` ждёт завершения активных запросов до таймаута.