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