github.com/mattevans/edward@v1.9.2/examples/platform_specific_service/simple/main.go (about) 1 // A simple executable that stays runnning until an interrupt is received 2 // Based on: https://gobyexample.com/signals 3 package main 4 5 import ( 6 "fmt" 7 "os" 8 "os/signal" 9 "syscall" 10 ) 11 12 func main() { 13 sigs := make(chan os.Signal, 1) 14 done := make(chan bool, 1) 15 16 signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM) 17 18 go func() { 19 _ = <-sigs 20 done <- true 21 }() 22 23 fmt.Println("Waiting for signal") 24 <-done 25 fmt.Println("Exiting") 26 }