gpt4 book ai didi

go - 杀死父进程后将标准输入传递给子进程

转载 作者:IT王子 更新时间:2023-10-29 01:15:31 25 4
gpt4 key购买 nike

我在 Go 中有以下代码:

cmd := exec.Command(...)
cmd.Stdout = os.Stdout
cmd.Stdin = os.Stdin
cmd.Stderr = os.Stderr
cmd.Run()

它生成另一个 Go 程序作为子进程,并将其 Stdin、Stdout 和 Stderr 设置为父进程的。 child 产生后,我想通过父进程中的 os.Exit()syscall.Kill(os.Getppid(), syscall.SIGTERM) 杀死父进程> 在 child 身上。问题出现在我杀死 parent 之后。它似乎关闭了 Stdin,因此子级无法从生成父级的终端接收输入。

我可以在杀死父对象之前接收到关于子对象的输入,因此关闭 Stdin 的绝对是杀死父对象的操作。有什么办法可以解决这个问题吗?

最佳答案

根据我的经验,我不知道有什么方法可以解决 Stdin 的问题。只有 StdoutStderr 以这种方式工作。

另一种方法是释放父进程正在使用的资源(即使其尽可能轻)并让它等待子进程的执行。

关于go - 杀死父进程后将标准输入传递给子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32600547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com