diff options
Diffstat (limited to 'admin.go')
-rw-r--r-- | admin.go | 23 |
1 files changed, 13 insertions, 10 deletions
@@ -520,16 +520,19 @@ func handleStop(w http.ResponseWriter, r *http.Request) error { if err != nil { Log().Named("admin.api").Error("unload error", zap.Error(err)) } - go func() { - err := stopAdminServer(adminServer) - var exitCode int - if err != nil { - exitCode = ExitCodeFailedQuit - Log().Named("admin.api").Error("failed to stop admin server gracefully", zap.Error(err)) - } - Log().Named("admin.api").Info("stopping now, bye!! 👋") - os.Exit(exitCode) - }() + if adminServer != nil { + // use goroutine so that we can finish responding to API request + go func() { + err := stopAdminServer(adminServer) + var exitCode int + if err != nil { + exitCode = ExitCodeFailedQuit + Log().Named("admin.api").Error("failed to stop admin server gracefully", zap.Error(err)) + } + Log().Named("admin.api").Info("stopping now, bye!! 👋") + os.Exit(exitCode) + }() + } return nil } |