//go:build windows // +build windows package main import ( "os" "os/exec" "syscall" ) type mainProgramStarter struct{} func (s *mainProgramStarter) GetMainName() string { return "main.exe" } func (s *mainProgramStarter) Start(targetExe string) error { cmd := exec.Command(targetExe) cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr // Windows:新进程组,脱离 Ctrl+C / 父进程 cmd.SysProcAttr = &syscall.SysProcAttr{ CreationFlags: syscall.CREATE_NEW_PROCESS_GROUP, } return cmd.Start() }