From 55da8c1ce2dc55c454d7b4c069465f0683681556 Mon Sep 17 00:00:00 2001 From: VaibhavMalik4187 Date: Tue, 21 Nov 2023 14:41:38 +0530 Subject: [PATCH] Added signal handler for the interrupt signal - Subscribing to an interrupt signal handler allows graceful shutdown of the program. - Use exit code 130 for interrupt signals. Fixes: https://github.com/kubescape/kubescape/issues/1476 Signed-off-by: VaibhavMalik4187 --- main.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/main.go b/main.go index f1dbf940..ed1ea641 100644 --- a/main.go +++ b/main.go @@ -1,11 +1,29 @@ package main import ( + "os" + "os/signal" + "syscall" + logger "github.com/kubescape/go-logger" "github.com/kubescape/kubescape/v3/cmd" ) func main() { + // Capture interrupt signal + signalChan := make(chan os.Signal, 1) + signal.Notify(signalChan, os.Interrupt, syscall.SIGTERM) + + // Handle interrupt signal + go func() { + <-signalChan + // Perform cleanup or graceful shutdown here + logger.L().StopError("Received interrupt signal, exiting...") + + // Exit the program with proper exit code for SIGINT + os.Exit(130) + }() + if err := cmd.Execute(); err != nil { logger.L().Fatal(err.Error()) }