From baf7179085fa61630d80f7e7292c4cb085ce2a84 Mon Sep 17 00:00:00 2001 From: Hermes Date: Tue, 18 Aug 2026 13:45:05 +0500 Subject: [PATCH] =?UTF-8?q?fix:=20windows-=D1=81=D0=B1=D0=BE=D1=80=D0=BA?= =?UTF-8?q?=D0=B0=20=E2=80=94=20=D0=B7=D0=B0=D0=B3=D0=BB=D1=83=D1=88=D0=BA?= =?UTF-8?q?=D0=B0=20setpgid/killGroup=20=D0=B4=D0=BB=D1=8F=20=D0=BE=D1=82?= =?UTF-8?q?=D1=81=D1=83=D1=82=D1=81=D1=82=D0=B2=D0=B8=D1=8F=20POSIX=20proc?= =?UTF-8?q?ess-group?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit procgroup_unix.go имеет unix build-tag; под windows setpgid/killGroup не определялись → GOOS=windows сборка падала. Добавлен procgroup_windows.go: setpgid — no-op (нет Setpgid), killGroup — Process.Kill (дочерние группы не завершаются). --- internal/opencode/procgroup_windows.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 internal/opencode/procgroup_windows.go diff --git a/internal/opencode/procgroup_windows.go b/internal/opencode/procgroup_windows.go new file mode 100644 index 0000000..13b762d --- /dev/null +++ b/internal/opencode/procgroup_windows.go @@ -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() +}