| // Copyright 2024 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| //go:build windows |
| |
| package telemetry |
| |
| import ( |
| "os/exec" |
| "syscall" |
| |
| "golang.org/x/sys/windows" |
| ) |
| |
| func init() { |
| daemonize = daemonizeWindows |
| } |
| |
| func daemonizeWindows(cmd *exec.Cmd) { |
| // Set DETACHED_PROCESS creation flag so that closing |
| // the console window the parent process was run in |
| // does not kill the child. |
| // See documentation of creation flags in the Microsoft documentation: |
| // https://learn.microsoft.com/en-us/windows/win32/procthread/process-creation-flags |
| cmd.SysProcAttr = &syscall.SysProcAttr{ |
| CreationFlags: windows.DETACHED_PROCESS, |
| } |
| } |