Kaynağa Gözat

fix(cmd): propagate sigterm to spawned processes (#1927)

propagate sigterm to spawned processes
Jo 2 yıl önce
ebeveyn
işleme
61f1bdf291
1 değiştirilmiş dosya ile 8 ekleme ve 0 silme
  1. 8 0
      pkg/settings/exe/exec.go

+ 8 - 0
pkg/settings/exe/exec.go

@@ -5,6 +5,7 @@ import (
 	"os"
 	"os/exec"
 	"strings"
+	"syscall"
 
 	"github.com/Jguer/yay/v11/pkg/text"
 )
@@ -18,12 +19,19 @@ type OSRunner struct{}
 
 func (r *OSRunner) Show(cmd *exec.Cmd) error {
 	cmd.Stdin, cmd.Stdout, cmd.Stderr = os.Stdin, os.Stdout, os.Stderr
+	cmd.SysProcAttr = &syscall.SysProcAttr{
+		Pdeathsig: syscall.SIGTERM,
+	}
 	text.Debugln("running", cmd.String())
 	return cmd.Run()
 }
 
 func (r *OSRunner) Capture(cmd *exec.Cmd) (stdout, stderr string, err error) {
 	text.Debugln("capturing", cmd.String())
+	cmd.SysProcAttr = &syscall.SysProcAttr{
+		Pdeathsig: syscall.SIGTERM,
+	}
+
 	outbuf, err := cmd.Output()
 	stdout = strings.TrimSpace(string(outbuf))