From f8b6cabb6ce5d104f33d53ade20995e29406a0a3 Mon Sep 17 00:00:00 2001 From: LordMathis Date: Sat, 26 Jul 2025 21:02:57 +0200 Subject: [PATCH] Implement platform-specific process attribute settings for llama server --- pkg/lifecycle.go | 5 +---- pkg/process_group_unix.go | 15 +++++++++++++++ pkg/process_group_windows.go | 9 +++++++++ 3 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 pkg/process_group_unix.go create mode 100644 pkg/process_group_windows.go 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 +}