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 <vaibhavmalik2018@gmail.com>
This commit is contained in:
VaibhavMalik4187
2023-11-21 14:41:38 +05:30
parent 6adfef2a48
commit 55da8c1ce2

18
main.go
View File

@@ -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())
}