package daemon import ( "os" "os/signal" "syscall" "github.com/rs/zerolog/log" ) var ( Interrupt = os.Interrupt Quit os.Signal = syscall.SIGQUIT Terminate os.Signal = syscall.SIGTERM ) func WaitForSignal(sig ...os.Signal) { ch := make(chan os.Signal, 1) signal.Notify(ch, sig...) s := <-ch log.Debug(). Str("signal", s.String()). Msg("Signal caught") } func WaitForExitSignal() { WaitForSignal(Interrupt, Quit, Terminate) }