使用cmd命令行创建的进程,如何进行父子分离

LLLLLancelot · · 2571 次点击
全部代码如下: func HandleShellTradePair(job *goresque.Job) bool { data, err := simplejson.NewJson([]byte(*job.Args)) if err != nil { logs.Error(err) return false } //shell脚本路径 cmdShell := []string{data.Get("shell_root").MustString()} if paramArry := data.Get("params").MustStringArray(); len(paramArry) > 0 { //命令参数 cmdShell = append(cmdShell, paramArry...) } //执行脚本 cmd := exec.Command("/bin/bash", "-c", strings.Join(cmdShell, " ")) // cmd. //设置父子进程分离 cmd.SysProcAttr = &syscall.SysProcAttr{CreationFlags:syscall.CREATE_UNICODE_ENVIRONMENT} //shell脚本输出 buff := &bytes.Buffer{} cmd.Stdout = buff logs.Info("start run shell", cmdShell) errRun := cmd.Run() if errRun != nil { logs.Error(errRun) } else { logs.Info(buff.String()) } return true }
#1