github.com/elves/elvish@v0.15.0/pkg/daemon/spawn_windows.go (about) 1 package daemon 2 3 import ( 4 "os" 5 "syscall" 6 ) 7 8 // A subset of possible process creation flags, value taken from 9 // https://msdn.microsoft.com/en-us/library/windows/desktop/ms684863(v=vs.85).aspx 10 const ( 11 CREATE_BREAKAWAY_FROM_JOB = 0x01000000 12 CREATE_NEW_PROCESS_GROUP = 0x00000200 13 DETACHED_PROCESS = 0x00000008 14 15 daemonCreationFlags = CREATE_BREAKAWAY_FROM_JOB | CREATE_NEW_PROCESS_GROUP | DETACHED_PROCESS 16 ) 17 18 func procAttrForSpawn(files []*os.File) *os.ProcAttr { 19 return &os.ProcAttr{ 20 Dir: `C:\`, 21 Env: []string{"SystemRoot=" + os.Getenv("SystemRoot")}, // SystemRoot is needed for net.Listen for some reason 22 Files: files, 23 Sys: &syscall.SysProcAttr{CreationFlags: daemonCreationFlags}, 24 } 25 }