Add /stop endpoint to admin (#2671)

* Add stop command to admin.  Exit after stop.

* Return error on incorrect http Method and provide better logging.

* reuse stopAndCleanup function for all graceful stops
This commit is contained in:
Toby Allen 2019-07-20 17:48:46 +01:00 committed by Matt Holt
parent b855e66170
commit d98f2faef9
2 changed files with 26 additions and 8 deletions

View file

@ -18,8 +18,6 @@ import (
"log"
"os"
"os/signal"
"github.com/mholt/certmagic"
)
// TrapSignals create signal/interrupt handlers as best it can for the
@ -57,16 +55,12 @@ func trapSignalsCrossPlatform() {
func gracefulStop(sigName string) {
exitCode := ExitCodeSuccess
// first stop all the apps
err := Stop()
err := stopAndCleanup()
if err != nil {
log.Printf("[ERROR] %s stop: %v", sigName, err)
exitCode = ExitCodeFailedQuit
}
// always, always, always try to clean up locks
certmagic.CleanUpOwnLocks()
log.Printf("[INFO] %s: Shutdown done", sigName)
os.Exit(exitCode)
}