Process 是否有一种方法可以可靠地在Go中列出子流程?

Process 是否有一种方法可以可靠地在Go中列出子流程?,process,go,exec,portability,Process,Go,Exec,Portability,我的程序正在使用exec.Command运行一个子进程(我不控制),这反过来又会启动另一个子进程。问题是,第二个子进程不是在第一个子进程下运行的,而是在原始进程下运行的,这使得我无法在需要时显式地终止它。我确实需要这样做 那么,是否有一种与平台无关的方法来列出子流程,以便我可以显式地清理它?与平台无关的方法可以使用,或者其他类似的机制。缺点是您必须让子流程应用程序(及其供应商)生成必要的信息 唯一的另一种可能性是开发您自己的多平台库,因为子流程语义和与流程相关的API会随着平台的变化而变化。现有

我的程序正在使用
exec.Command
运行一个子进程(我不控制),这反过来又会启动另一个子进程。问题是,第二个子进程不是在第一个子进程下运行的,而是在原始进程下运行的,这使得我无法在需要时显式地终止它。我确实需要这样做


那么,是否有一种与平台无关的方法来列出子流程,以便我可以显式地清理它?

与平台无关的方法可以使用,或者其他类似的机制。缺点是您必须让子流程应用程序(及其供应商)生成必要的信息


唯一的另一种可能性是开发您自己的多平台库,因为子流程语义和与流程相关的API会随着平台的变化而变化。现有的一些实用程序只是获取系统中所有进程的列表,查询每个进程的父pid,并使用自定义逻辑构建一个树。

我不确定这是否真的是特定的。也许用一些更一般的东西标记它会有助于它被看到。@Logiraptor我添加了一些标记,谢谢你的反馈。不,你不能用跨平台的方式。(这是在windows上,因为它不能在Linux/Unix上发生)