package pidfile | |
import "syscall" | |
const ( | |
processQueryLimitedInformation = 0x1000 | |
stillActive = 259 | |
) | |
func processExists(pid int) bool { | |
h, err := syscall.OpenProcess(processQueryLimitedInformation, false, uint32(pid)) | |
if err != nil { | |
return false | |
} | |
var c uint32 | |
err = syscall.GetExitCodeProcess(h, &c) | |
syscall.Close(h) | |
if err != nil { | |
return c == stillActive | |
} | |
return true | |
} |