From ff7ac9ad75b4796da1e705c2b3eeea723a7a8497 Mon Sep 17 00:00:00 2001 From: ptrcnull Date: Tue, 18 Jan 2022 15:29:42 +0100 Subject: [PATCH] fix: Send SIGTERM to child process when parent gets terminated --- main.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/main.go b/main.go index aa061e4..81083df 100644 --- a/main.go +++ b/main.go @@ -5,6 +5,7 @@ import ( "fmt" "os" "os/exec" + "os/signal" "strings" "syscall" ) @@ -46,6 +47,15 @@ func main() { fmt.Printf("failed to start: %s\n", err) } + sigs := make(chan os.Signal, 1) + go func() { + for { + _ = <-sigs + cmd.Process.Signal(syscall.SIGTERM) + } + }() + signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM) + err = cmd.Wait() if err != nil { fmt.Printf("process exited with error: %s\n", err)