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 }