Add pidfile support

Copy a simple implementation from the Moby project, since importing
their package would pull in too many dependencies.

Fixes #320
This commit is contained in:
Cameron Moore 2019-12-25 15:41:48 -06:00
parent 569921cd72
commit 876c853073
35 changed files with 7198 additions and 2 deletions

View file

@ -0,0 +1,25 @@
package pidfile
import (
"golang.org/x/sys/windows"
)
const (
processQueryLimitedInformation = 0x1000
stillActive = 259
)
func processExists(pid int) bool {
h, err := windows.OpenProcess(processQueryLimitedInformation, false, uint32(pid))
if err != nil {
return false
}
var c uint32
err = windows.GetExitCodeProcess(h, &c)
windows.Close(h)
if err != nil {
return c == stillActive
}
return true
}