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  }