github.com/Benchkram/bob@v0.0.0-20220321080157-7c8f3876e225/pkg/wait/wait.go (about) 1 package wait 2 3 import ( 4 "os" 5 "os/signal" 6 "sync" 7 "syscall" 8 ) 9 10 // ForCtrlC https://jjasonclark.com/waiting_for_ctrl_c_in_golang/ 11 func ForCtrlC() { 12 var endWaiter sync.WaitGroup 13 endWaiter.Add(1) 14 signalChannel := make(chan os.Signal, 1) 15 signal.Notify(signalChannel, os.Interrupt, syscall.SIGTERM, syscall.SIGHUP) 16 go func() { 17 <-signalChannel 18 endWaiter.Done() 19 }() 20 endWaiter.Wait() 21 }