github.com/anthropics/anthropic-sdk-go@v1.70.1/tools/agenttoolset/bash_kill_unix.go (about)

     1  //go:build !windows
     2  
     3  package agenttoolset
     4  
     5  import (
     6  	"os"
     7  	"syscall"
     8  )
     9  
    10  // killProcessGroup terminates p's whole process group (pty.Start sets Setsid,
    11  // so PGID == PID), falling back to p.Kill() if the group kill fails.
    12  func killProcessGroup(p *os.Process) error {
    13  	if p == nil {
    14  		return nil
    15  	}
    16  	if err := syscall.Kill(-p.Pid, syscall.SIGKILL); err == nil {
    17  		return nil
    18  	}
    19  	return p.Kill()
    20  }