Files
agentic-coding-workflow/internal/acp/supervisor_unix.go
T

24 lines
483 B
Go

//go:build !windows
package acp
import (
"syscall"
"time"
)
// unixGracefulTerm 在 Unix 平台上先发 SIGTERM,等待 grace 时间内退出;
// 否则 Process.Kill。done channel 由 monitorProcess 关闭。
func (s *Supervisor) unixGracefulTerm(proc *Process, grace time.Duration) {
if proc.Cmd.Process == nil {
return
}
_ = proc.Cmd.Process.Signal(syscall.SIGTERM)
select {
case <-proc.done:
return
case <-time.After(grace):
_ = proc.Cmd.Process.Kill()
}
}