//go:build !windows package process import ( "os/exec" "syscall" ) // setSysProcAttr runs the worker in its own process group. func setSysProcAttr(cmd *exec.Cmd) { cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} } // signalGroup delivers sig to the worker and its whole process group. func signalGroup(cmd *exec.Cmd, sig syscall.Signal) { if cmd.Process == nil { return } _ = syscall.Kill(-cmd.Process.Pid, sig) }