golang 隐藏控制台cmd窗口 daemon 调用exe
package main
import (
"flag"
"fmt"
"log"
"os"
"os/exec"
"syscall"
)
func main() {
var app string
var logfile string
flag.StringVar(&app,"a","cloudreve","应用程序")
flag.StringVar(&logfile, "f", "exec.log", "stdout 重定向文件")
flag.Parse()
fmt.Println("daemonlize ", app)
cmd := exec.Command(app)
cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow:true}
f, _ := os.OpenFile(logfile, os.O_WRONLY|os.O_CREATE|os.O_APPEND|os.O_SYNC,0755)
cmd.Stdout = f
cmd.Stderr = f
err := cmd.Start()
if err != nil {
log.Fatal(err)
}
log.Printf("Waiting for command to finish...")
err = cmd.Wait()
log.Printf("Command finished with error: %v", err)
}