通过main执行子进程任务
...(略)
func init() {
flag.IntVar(&Global_Run.Status, "status", 0, "exec sub process 1; else 0")
flag.Parse()
}
func main() {
ctx := context.Background()
if Global_Run.Status == 1 {
// 子任务处理
return
} else {
//主任务
var err error
var p *os.Process
params := []string{"", "-status", "1"}
attr := &os.ProcAttr{}
attr.Files = append(attr.Files, os.Stdin, os.Stdout, os.Stderr)
for {
p, err = os.StartProcess("./main", params, attr)
if err != nil {
fmt.Println(err)
continue
}
p.Wait()
p.Release()
p = nil
}
}
}