func stopCmd()

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
}