没有跨平台的解决方案可以自动终止子进程。
在Linux上,您可以使用以下
pdeathsig功能:
cmd := exec.Command("./long-process")cmd.SysProcAttr = &syscall.SysProcAttr{ Pdeathsig: syscall.SIGTERM,}在其他平台上,孩子需要确定何时自行退出。一种方法是监视从父级分配给它的管道或插座FD。您还可以让某种流程管理器监视流程并在出现问题时进行清除。
通常,恐慌应该很少见并得到解决。如果您确实有容易发生恐慌的代码区域,则可以在退出之前在本地恢复并要求清除子进程。



