//go:build !windows package process import ( "os/exec" "syscall" ) func killProcessGroup(c *exec.Cmd) error { if c.Process == nil { return nil } // 殺死整個 process group(負號表示 group) pgid, err := syscall.Getpgid(c.Process.Pid) if err == nil { _ = syscall.Kill(-pgid, syscall.SIGKILL) } // 同時也 kill 主程序,以防萬一 return c.Process.Kill() }