github.com/ryanslade/nomad@v0.2.4-0.20160128061903-fc95782f2089/client/driver/spawn/spawn_windows.go (about)

     1  package spawn
     2  
     3  import "syscall"
     4  
     5  const STILL_ACTIVE = 259
     6  
     7  func (s *Spawner) Alive() bool {
     8  	const da = syscall.STANDARD_RIGHTS_READ | syscall.PROCESS_QUERY_INFORMATION | syscall.SYNCHRONIZE
     9  	h, e := syscall.OpenProcess(da, false, uint32(s.SpawnPid))
    10  	if e != nil {
    11  		return false
    12  	}
    13  
    14  	var ec uint32
    15  	e = syscall.GetExitCodeProcess(h, &ec)
    16  	if e != nil {
    17  		return false
    18  	}
    19  
    20  	return ec == STILL_ACTIVE
    21  }