in client/local_notwindows.go [40:55]
func stopCmd(cmd *exec.Cmd) error {
pgid, err := syscall.Getpgid(cmd.Process.Pid)
if err != nil {
// Kill just the parent process since we failed to get the process group ID.
if err := cmd.Process.Kill(); err != nil {
return fmt.Errorf("failed to kill process: %v", err)
}
} else {
// Kill the whole process group.
if err := syscall.Kill(-pgid, syscall.SIGKILL); err != nil {
return fmt.Errorf("failed to kill process group: %v", err)
}
}
return nil
}