fix: windows-сборка — заглушка setpgid/killGroup для отсутствия POSIX process-group
All checks were successful
CI / test (push) Successful in 40s
CI / build-and-package (amd64, linux) (push) Successful in 36s
CI / build-and-package (amd64, windows) (push) Successful in 36s

procgroup_unix.go имеет unix build-tag; под windows setpgid/killGroup не
определялись → GOOS=windows сборка падала. Добавлен procgroup_windows.go:
setpgid — no-op (нет Setpgid), killGroup — Process.Kill (дочерние группы не
завершаются).
This commit is contained in:
Hermes
2026-08-18 13:45:05 +05:00
parent 733e63339a
commit baf7179085

View File

@@ -0,0 +1,20 @@
//go:build windows
package opencode
import "os/exec"
// На Windows нет POSIX process-group (нет Setpgid / SIGKILL по -pgid).
// setpgid — no-op: дочерние процессы не группируются в отдельную группу.
func setpgid(cmd *exec.Cmd) {}
// killGroup на Windows может убить только сам процесс (Process.Kill),
// дочерние процессы группы не завершаются. Для serve это приемлемо: при
// остановке сервера дочерние подпроцессы opencode всё равно умирают вместе
// с родителем/консолью.
func killGroup(proc *exec.Cmd) {
if proc == nil || proc.Process == nil {
return
}
_ = proc.Process.Kill()
}