package signal import ( "os" "os/signal" ) func CatchAll(sigc chan os.Signal) { handledSigs := []os.Signal{} for _, s := range SignalMap { handledSigs = append(handledSigs, s) } signal.Notify(sigc, handledSigs...) } func StopCatch(sigc chan os.Signal) { signal.Stop(sigc) close(sigc) }