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) }