Files
2026-05-19 03:37:56 -04:00

23 lines
460 B
Go

package os
import (
"context"
stdlib "os"
"os/signal"
"syscall"
"go.uber.org/zap"
)
// SignalListener listens for SIGINT and SIGTERM and cancels the root context.
func SignalListener(logger *zap.Logger, cancel context.CancelFunc) {
sigCh := make(chan stdlib.Signal, 1)
signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM)
go func() {
sig := <-sigCh
logger.Info("received shutdown signal", zap.String("signal", sig.String()))
cancel()
}()
}