use os.Process#Kill (Fixes #73)

This commit is contained in:
Anton Kaliaev 2017-11-03 23:51:39 -05:00
parent b658294a13
commit 49d75e223e
No known key found for this signature in database
GPG Key ID: 7B6881D965918214
1 changed files with 8 additions and 3 deletions

View File

@ -35,6 +35,8 @@ func GoPath() string {
return path
}
// TrapSignal catches the SIGTERM and executes cb function. After that it exits
// with code 1.
func TrapSignal(cb func()) {
c := make(chan os.Signal, 1)
signal.Notify(c, os.Interrupt, syscall.SIGTERM)
@ -50,10 +52,13 @@ func TrapSignal(cb func()) {
select {}
}
// Kill the running process by sending itself SIGTERM
// Kill the running process by sending itself SIGTERM.
func Kill() error {
pid := os.Getpid()
return syscall.Kill(pid, syscall.SIGTERM)
p, err := os.FindProcess(os.Getpid())
if err != nil {
return err
}
return p.Signal(syscall.SIGTERM)
}
func Exit(s string) {