//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 }