| | |
| | | } |
| | | |
| | | args = append(args, app.GetParams(util.ConfigPath, file)...) |
| | | pid, err := runProc(ctx, "./analysis", args, &cfg.Env) |
| | | pid, err := runProc(ctx, "./analysis", args, cfg.Env) |
| | | |
| | | if err != nil { |
| | | logo.Errorf("ANALYSIS START SLAVE PROC %s IPC: %s error %+v\n", v.SdkType, v.IpcID, err) |
| | |
| | | logo.Infoln("pid : [", pid, "] quit") |
| | | } |
| | | delete(procMap, pid) |
| | | runProc(ctxt, info.cmd.Path, info.cmd.Args[1:], &info.env) |
| | | runProc(ctxt, info.cmd.Path, info.cmd.Args[1:], info.env) |
| | | } else { |
| | | logo.Errorln(pid, " doesn't exist") |
| | | } |
| | |
| | | logo.Errorln(pid, " doesn't exist") |
| | | } |
| | | } |
| | | func runProc(ctxt context.Context, bin string, args []string, env *string) (int, error) { |
| | | func runProc(ctxt context.Context, bin string, args []string, env string) (int, error) { |
| | | cmd := exec.CommandContext(ctxt, bin, args...) |
| | | cmd.Env = os.Environ() |
| | | cmd.Env = append(cmd.Env, *env) |
| | | rEnv := "" |
| | | if len(env) != 0 { |
| | | rEnv = "LD_LIBRARY_PATH=" + env |
| | | cmd.Env = os.Environ() |
| | | cmd.Env = append(cmd.Env, rEnv) |
| | | } |
| | | |
| | | pid := -1 |
| | | cmd.Stdout = os.Stdout |
| | |
| | | err := cmd.Start() |
| | | if err == nil { |
| | | pid = cmd.Process.Pid |
| | | procMap[pid] = &procInfo{cmd, *env} |
| | | procMap[pid] = &procInfo{cmd, rEnv} |
| | | } |
| | | return pid, err |
| | | } |