()
| 30 | ) |
| 31 | |
| 32 | func handleSignals() os.Signal { |
| 33 | sig := make(chan os.Signal, 5) |
| 34 | signal.Notify(sig, os.Interrupt, syscall.SIGTERM, syscall.SIGHUP, syscall.SIGINT) |
| 35 | |
| 36 | s := <-sig |
| 37 | go func() { |
| 38 | s := handleSignals() |
| 39 | log.Printf("forced shutdown due to signal (%v)!", s) |
| 40 | os.Exit(1) |
| 41 | }() |
| 42 | |
| 43 | log.Printf("signal received (%v)", s) |
| 44 | return s |
| 45 | } |