From 5ab17a3a371c1f84ef5a649d9310971eb7959271 Mon Sep 17 00:00:00 2001 From: Matthew Holt Date: Mon, 16 Dec 2019 13:46:13 -0700 Subject: admin: /stop endpoint gracefully shuts down; fixes caddy stop command --- admin.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'admin.go') diff --git a/admin.go b/admin.go index d6f1787..0f8144b 100644 --- a/admin.go +++ b/admin.go @@ -561,14 +561,20 @@ func handleConfigID(w http.ResponseWriter, r *http.Request) error { } func handleStop(w http.ResponseWriter, r *http.Request) error { - defer func() { - Log().Named("admin.api").Info("stopping now, bye!! 👋") - os.Exit(0) - }() err := handleUnload(w, r) 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) + }() return nil } -- cgit v1.2.3