我想测试 wait4 函数,但我不太熟悉子进程等,但我需要让它继续工作,在此期间向它发送一些信号并查看 react 。你能给我一个在 Go 中使用 wait4 的小例子吗?
最佳答案
wait4 在 Linux 上已被弃用,正确的方法是使用 exec.Command
并调用 .Wait()
。
信号示例:
func bgProcess(app string) (chan error, *os.Process, error) {
cmd := exec.Command(app)
ch := make(chan error, 1)
if err := cmd.Start(); err != nil {
return nil, nil, err
}
go func() {
ch <- cmd.Wait()
}()
return ch, cmd.Process, nil
}
func main() {
ch, proc, err := bgProcess("/usr/bin/cat")
if err != nil {
log.Fatal(err)
}
log.Println("Signal(os.Kill):", proc.Signal(os.Kill))
log.Println("cat returned:", <-ch)
}
关于去wait4函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31942171/