func (su *Supervise) Spawn() { var args = make([]string, 3) args[0] = "/bin/bash" args[1] = "-c" args[2] = su.cmd var sysProcAttr = syscall.SysProcAttr{} sysProcAttr.Setsid = true var procAttr = syscall.ProcAttr{ su.cwd, os.Environ(), nil, &sysProcAttr, } var pid, _ = syscall.ForkExec("/bin/bash", args, &procAttr) su.pid = pid su.FlushStatus() su.WriteLog("child %d started", su.pid) }