github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/pkg/procutil/procutil_unix.go (about) 1 //go:build !windows 2 // +build !windows 3 4 package procutil 5 6 import ( 7 "os" 8 "os/exec" 9 "syscall" 10 ) 11 12 func SetOptNewProcessGroup(attrs *syscall.SysProcAttr) { 13 attrs.Setpgid = true 14 } 15 16 func KillProcessGroup(cmd *exec.Cmd) { 17 if cmd == nil || cmd.Process == nil { 18 return 19 } 20 21 // Kill the entire process group. 22 _ = syscall.Kill(-cmd.Process.Pid, syscall.SIGKILL) 23 } 24 25 func GracefullyShutdownProcess(p *os.Process) error { 26 if p == nil { 27 return nil 28 } 29 30 return syscall.Kill(-p.Pid, syscall.SIGTERM) 31 }