我编写了一个在Go中使用ForkExec的程序。
command := "/bin/su -c '/bin/ls -lh / >/tmp/sC0X3kASz7' joe"
pid, err := os.ForkExec(command, []string{}, os.Environ(), "", []*os.File{nil, cmd.Stdout, cmd.Stderr})
如果您在Shell上执行该命令,您cat /tmp/sC0X3kASz7是否会看到列出的文件。
但是,上面的ForkExec仅创建文件,并且在其中不写入任何内容。知道为什么会这样吗?
走是根。
编辑:command := "/bin/ls -lh / >/tmp/sC0X3kASz7"也不起作用,只是尝试。它甚至没有创建/ tmp文件。
edit2:command := "/bin/bash /tmp/command.txt"我将上述命令放入该txt文件中,再次,从Shell执行,从ForkExec创建文件-不,:(
edit3:解决方案在这里http://code.google.com/p/go/issues/detail?id=428
慕桂英3389331
相关分类