refactor: streamline shutdown signal handling (#1248)

This commit is contained in:
soup 2023-11-14 20:39:29 +01:00 committed by GitHub
parent fc63d46e71
commit 558bc045ab
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -141,7 +141,7 @@ func main() {
}() }()
sigCh := make(chan os.Signal, 1) sigCh := make(chan os.Signal, 1)
signal.Notify(sigCh, syscall.SIGHUP, syscall.SIGINT, syscall.SIGQUIT, syscall.SIGKILL, syscall.SIGTERM) signal.Notify(sigCh, syscall.SIGHUP, syscall.SIGINT, syscall.SIGQUIT, syscall.SIGTERM)
srv := server.NewServer(log, cfg.Config, ircService, indexerService, feedService, schedulingService, updateService) srv := server.NewServer(log, cfg.Config, ircService, indexerService, feedService, schedulingService, updateService)
if err := srv.Start(); err != nil { if err := srv.Start(); err != nil {
@ -150,20 +150,14 @@ func main() {
} }
for sig := range sigCh { for sig := range sigCh {
switch sig { log.Info().Msgf("received signal: %v, shutting down server.", sig)
case syscall.SIGHUP:
log.Log().Msg("shutting down server sighup") srv.Shutdown()
srv.Shutdown()
db.Close() if err := db.Close(); err != nil {
os.Exit(1) log.Error().Err(err).Msg("failed to close the database connection properly")
case syscall.SIGINT, syscall.SIGQUIT:
srv.Shutdown()
db.Close()
os.Exit(1)
case syscall.SIGKILL, syscall.SIGTERM:
srv.Shutdown()
db.Close()
os.Exit(1) os.Exit(1)
} }
os.Exit(0)
} }
} }