有没有办法可靠地列出Go中的子进程?

时间:2014-04-04 20:44:47

标签: process go exec portability

我的程序正在使用exec.Command来运行子进程(我无法控制),这反过来又启动了另一个子进程。问题是第二个子进程没有在第一个子进程下运行,而是在原始进程中运行,如果需要,我无法明确地杀死它。我确实需要。

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

1 个答案:

答案 0 :(得分:0)

平台不可知的方式是使用PID files或其他类似的机制。缺点是您必须让子流程应用程序(及其供应商)生成必要的信息。

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