process - 有没有办法可靠地列出 Go 中的子流程?

标签 process go exec portability

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

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

最佳答案

与平台无关的方法是使用 PID files ,或其他一些类似的机制。缺点是您必须让子流程应用程序(及其 vendor )生成必要的信息。

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

关于process - 有没有办法可靠地列出 Go 中的子流程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22872680/

相关文章:

json - 如何在 Go 中连续追加到 JSON 文件?

未找到 PHP ffmpeg

php - 2>&1 在此 php 代码段中做什么?

c - 用C编写命令行shell;第一次尝试使用 ncurses/C

java - 使用 lua posix execp 执行 java 程序

java - Applet在服务器上执行程序

go - 我在哪里获得 Golang 的 Radius MSCHAPv2 中的密码?

rest - 从 Go Code 使用 API 时出现 401 错误,而 cURL 运行良好

c - 如何在 execlp() 之后找到程序的返回值?

multithreading - 轻量级进程和线程有什么区别?