blob: 91dee0ed9a8143bb1b3276f9a17896059ff9524a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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
}
|