Files
ratatoskr-go/internal/opencode/pgid_linux.go
Hermes 4ebafc48d0
All checks were successful
build-test / build (push) Successful in 1m21s
internal/opencode: runner (idle/hard timeout, process-group kill, resume-fallback) + verdict/json parsing
2026-08-14 13:29:05 +05:00

24 lines
532 B
Go

//go:build linux
package opencode
import (
"os/exec"
"syscall"
)
func sysProcAttr(proc *exec.Cmd) {
proc.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}
}
// killProcGroup убивает всю process-group по лидеру pid (SIGKILL дочерним и
// SIGTERM лидеру). Игнорирует ошибки: weakest-effort teardown.
func killProcGroup(pid int) {
pgid, err := syscall.Getpgid(pid)
if err != nil {
return
}
_ = syscall.Kill(-pgid, syscall.SIGKILL)
_ = syscall.Kill(pid, syscall.SIGKILL)
}