发送SIGTSTP会暂停整个程序

时间:2015-07-30 06:59:24

标签: go

我正在尝试向子进程发送SIGTSTP信号。我面临的问题是将SIGTSTP发送到子进程会暂停我的整个程序,并且调用者无法继续执行其余的程序。这是我的代码

cmd := exec.Command("ping", "google.com")
stdout, _ := cmd.StdoutPipe()
cmd.Start()
io.Copy(os.Stdout, stdout)
cmd.Wait()

运行此代码,我从终端上打印的ping google.com输出。当我点击ctrl-z时,输出停止,但程序不再能够接受信号或执行任何其他操作,除非将SIGCONT发送到子进程。我错过了什么吗?如何暂停子进程但继续执行调用者?感谢。

1 个答案:

答案 0 :(得分:2)

Wait等待命令退出。您的子进程未退出,只是暂停,因此Wait不会返回。