diff --git a/pkg/lifecycle.go b/pkg/lifecycle.go index b9e4dfe..8f2096d 100644 --- a/pkg/lifecycle.go +++ b/pkg/lifecycle.go @@ -41,10 +41,7 @@ func (i *Instance) Start() error { i.cmd = exec.CommandContext(i.ctx, "llama-server", args...) if runtime.GOOS != "windows" { - if i.cmd.SysProcAttr == nil { - i.cmd.SysProcAttr = &syscall.SysProcAttr{} - } - i.cmd.SysProcAttr.Setpgid = true + setProcAttrs(i.cmd) } var err error diff --git a/pkg/process_group_unix.go b/pkg/process_group_unix.go new file mode 100644 index 0000000..9001702 --- /dev/null +++ b/pkg/process_group_unix.go @@ -0,0 +1,15 @@ +//go:build !windows + +package llamactl + +import ( + "os/exec" + "syscall" +) + +func setProcAttrs(cmd *exec.Cmd) { + if cmd.SysProcAttr == nil { + cmd.SysProcAttr = &syscall.SysProcAttr{} + } + cmd.SysProcAttr.Setpgid = true +} diff --git a/pkg/process_group_windows.go b/pkg/process_group_windows.go new file mode 100644 index 0000000..6aedbd8 --- /dev/null +++ b/pkg/process_group_windows.go @@ -0,0 +1,9 @@ +//go:build windows + +package llamactl + +import "os/exec" + +func setProcAttrs(cmd *exec.Cmd) { + // No-op on Windows +}