diff --git a/run/main.go b/run/main.go index 9050df5..a319e08 100644 --- a/run/main.go +++ b/run/main.go @@ -74,11 +74,19 @@ signalLoop: fmt.Println(" ") log.Warning("main: program was interrupted, shutting down.") + forceCnt := 5 // catch signals during shutdown go func() { for { <-signalCh - fmt.Println(" again, but already shutting down") + forceCnt-- + if forceCnt > 0 { + fmt.Printf(" again, but already shutting down. %d more to force.\n", forceCnt) + } else { + fmt.Fprintln(os.Stderr, "===== FORCED EXIT =====") + printStackTo(os.Stderr) + os.Exit(1) + } } }()