fix(exit): exit with 1 on runtime error

This commit is contained in:
Quentin McGaw
2022-11-18 09:44:51 +00:00
parent 698095f0a0
commit 7a3b9941aa

View File

@@ -91,12 +91,13 @@ func main() {
errorCh <- _main(ctx, buildInfo, args, logger, muxReader, tun, netLinker, cmder, cli) errorCh <- _main(ctx, buildInfo, args, logger, muxReader, tun, netLinker, cmder, cli)
}() }()
var err error
select { select {
case signal := <-signalCh: case signal := <-signalCh:
fmt.Println("") fmt.Println("")
logger.Warn("Caught OS signal " + signal.String() + ", shutting down") logger.Warn("Caught OS signal " + signal.String() + ", shutting down")
cancel() cancel()
case err := <-errorCh: case err = <-errorCh:
close(errorCh) close(errorCh)
if err == nil { // expected exit such as healthcheck if err == nil { // expected exit such as healthcheck
os.Exit(0) os.Exit(0)
@@ -108,22 +109,27 @@ func main() {
const shutdownGracePeriod = 5 * time.Second const shutdownGracePeriod = 5 * time.Second
timer := time.NewTimer(shutdownGracePeriod) timer := time.NewTimer(shutdownGracePeriod)
select { select {
case err := <-errorCh: case shutdownErr := <-errorCh:
if !timer.Stop() { if !timer.Stop() {
<-timer.C <-timer.C
} }
if err == nil { if shutdownErr != nil {
logger.Info("Shutdown successful") logger.Warnf("Shutdown not completed gracefully: %s", shutdownErr)
os.Exit(0) os.Exit(1)
} }
logger.Warnf("Shutdown not completed gracefully: %s", err)
logger.Info("Shutdown successful")
if err != nil {
os.Exit(1)
}
os.Exit(0)
case <-timer.C: case <-timer.C:
logger.Warn("Shutdown timed out") logger.Warn("Shutdown timed out")
os.Exit(1)
case signal := <-signalCh: case signal := <-signalCh:
logger.Warn("Caught OS signal " + signal.String() + ", forcing shut down") logger.Warn("Caught OS signal " + signal.String() + ", forcing shut down")
os.Exit(1)
} }
os.Exit(1)
} }
var ( var (