From 3eba8fbd243c0ffcb1c396526a4e19d1abc1eaf9 Mon Sep 17 00:00:00 2001 From: hachem Date: Sat, 29 Aug 2026 19:15:28 +0200 Subject: add: control flow --- internal/server/sysproc_unix.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 internal/server/sysproc_unix.go (limited to 'internal/server/sysproc_unix.go') diff --git a/internal/server/sysproc_unix.go b/internal/server/sysproc_unix.go new file mode 100644 index 0000000..91dee0e --- /dev/null +++ b/internal/server/sysproc_unix.go @@ -0,0 +1,36 @@ +//go:build !windows + +package server + +import ( + "os" + "syscall" +) + +func detachAttr() *syscall.SysProcAttr { + return &syscall.SysProcAttr{Setsid: true} +} + +func signalStop(pid int) error { + proc, err := os.FindProcess(pid) + if err != nil { + return err + } + return proc.Signal(syscall.SIGTERM) +} + +func forceKill(pid int) error { + proc, err := os.FindProcess(pid) + if err != nil { + return err + } + return proc.Kill() +} + +func isAlive(pid int) bool { + proc, err := os.FindProcess(pid) + if err != nil { + return false + } + return proc.Signal(syscall.Signal(0)) == nil +} -- cgit v1.3