diff options
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 16 |
1 files changed, 15 insertions, 1 deletions
@@ -3,6 +3,9 @@ package main import ( "fmt" "log" + "os" + "os/signal" + "syscall" "net/http" "time" @@ -34,9 +37,20 @@ func run() { ReadTimeout: ReadTimeout, } - log.Fatal(srv.ListenAndServe()) + go srv.ListenAndServe() + + await(syscall.SIGTERM, syscall.SIGINT) } func hello(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Hello world!") } + +func await(signals ...syscall.Signal) { + listener := make(chan os.Signal, 1) + for _, s := range signals { + signal.Notify(listener, s) + } + sig := <-listener + log.Printf("Received OS signal '%v'\n", sig) +} |
