diff --git a/signal.go b/signal.go index 9afeee611..861ad334f 100644 --- a/signal.go +++ b/signal.go @@ -28,7 +28,10 @@ func mainInterruptHandler() { select { case <-interruptChannel: btcdLog.Infof("Received SIGINT (Ctrl+C). Shutting down...") - for _, callback := range interruptCallbacks { + // run handlers in LIFO order. + for i := range interruptCallbacks { + idx := len(interruptCallbacks) -1 -i + callback := interruptCallbacks[idx] callback() }