//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()
}
