diff --git a/main.go b/main.go index 67047d2..51ac5ec 100644 --- a/main.go +++ b/main.go @@ -66,16 +66,16 @@ func main() { }) server := &http.Server{Addr: listenAddr} - go func() { - if err := http.ListenAndServe(listenAddr, nil); err != nil && - err != http.ErrServerClosed { - log.Fatalln(err) - } - }() + errs := make(chan error, 1) + go func() { errs <- server.ListenAndServe() }() sig := make(chan os.Signal) signal.Notify(sig, syscall.SIGINT, syscall.SIGTERM) - <-sig + select { + case <-sig: + case err := <-errs: + log.Println(err) + } // For simplicity, we'll wait for everything to finish, including snapshots. if err := server.Shutdown(context.Background()); err != nil {