Slide 27
Slide 27 text
࣮ϙΠϯτ̎ʙϑΝΠϧσΟεΫϦϓλ
func forkExec(l *net.TCPListener) (*os.Process, error) {
progName, _ := exec.LookPath(os.Args[0])
pwd, _ := os.Getwd()
f, _ := l.File()
defer f.Close()
files := []*os.File{os.Stdin, os.Stdout, os.Stderr, f}
fdEnv := fmt.Sprintf("%s=%d", "FD_KEY", len(files)-1)
return os.StartProcess(progName, os.Args, &os.ProcAttr{
Dir: pwd,
Env: append(os.Environ(), fdEnv),
Files: files,
})
}
ϑΝΠϧσΟεΫϓϦΫλɺϑΝΠϧιέοτͳͲΛநԽͨ͠Έ
ϓϩηεΛGPSLͨ͠ࡍɺϓϩηεͷϑΝΠϧσΟεΫϦϓλΛҾ͖ܧ͙