From d3a2aa8fb0b9dc08a2cded207886760613784f24 Mon Sep 17 00:00:00 2001 From: Evsyukov Denis Date: Thu, 8 Feb 2024 19:23:50 +0300 Subject: [PATCH] feat: correct process sigint signal --- cmd/wireproxy/main.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/cmd/wireproxy/main.go b/cmd/wireproxy/main.go index ef1a669..f6c5796 100644 --- a/cmd/wireproxy/main.go +++ b/cmd/wireproxy/main.go @@ -1,10 +1,12 @@ package main import ( + "context" "fmt" "log" "os" "os/exec" + "os/signal" "syscall" "github.com/akamensky/argparse" @@ -46,6 +48,15 @@ func executablePath() string { } func main() { + s := make(chan os.Signal, 1) + signal.Notify(s, syscall.SIGINT, syscall.SIGQUIT) + ctx, cancel := context.WithCancel(context.Background()) + + go func() { + <-s + cancel() + }() + exePath := executablePath() unveilOrPanic("/", "r") unveilOrPanic(exePath, "x") @@ -138,5 +149,5 @@ func main() { go spawner.SpawnRoutine(tnet) } - select {} // sleep eternally + <-ctx.Done() }