go语言执行shell命令的一个bug

EddieChan1993 · · 2730 次点击
jarlyyn@debian:/tmp/go$ cat test.go package main import ( "fmt" "os/exec" "time" ) func main() { cmd := exec.Command("sh", "-c", "tail -f 1.txt") go func() { fmt.Println(cmd.Run()) }() time.Sleep(time.Second) } jarlyyn@debian:/tmp/go$ ps -A|grep tail jarlyyn@debian:/tmp/go$ go run test.go jarlyyn@debian:/tmp/go$ ps -A|grep tail 14758 pts/5 00:00:00 tail jarlyyn@debian:/tmp/go$
#3
更多评论
bug..... 你现要了解&有什么用。 带&和不带&,其实就相当于 go里你是用run还是start来开始程序。 或者直接go起个协助程来跑就可以了。
#1
你没理解到我的意思,我既然选择shell来执行,肯定有要我的用处嘛,我是用来后台运行go应用,通过这个命令实现常住。
#2