github.com/shogo82148/goa-v1@v1.6.2/goagen/utils/signal.go (about) 1 package utils 2 3 import ( 4 "os" 5 "os/signal" 6 ) 7 8 // Catch signals and invoke then callback 9 func Catch(signals []os.Signal, then func()) { 10 c := make(chan os.Signal, 1) 11 if signals == nil { 12 signals = defaultSignals 13 } 14 signal.Notify(c, signals...) 15 <-c 16 signal.Stop(c) 17 if then != nil { 18 then() 19 } 20 }