fix: windows-сборка — заглушка setpgid/killGroup для отсутствия POSIX process-group
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:
20
internal/opencode/procgroup_windows.go
Normal file
20
internal/opencode/procgroup_windows.go
Normal 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()
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user