浏览代码

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

propagate sigterm to spawned processes
Jo 2 年之前
父节点
当前提交
61f1bdf291
共有 1 个文件被更改,包括 8 次插入0 次删除
  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))