你并不是一无所有,至少你有肉。
代码
golang中会经常遇到要 fork 子进程的需求。go 标准库为我们封装了 os/exec标准包,当我们要运行外部命令时应该优先使用这个库。这里我简单结合context 和 Cmd 模块写一个通用的执行 command 方法。代码如下:
1 | package main |
说明
- 可以通过 context 控制命令执行, 调用方可以调用cancel 或者设置超时控制命令执行生命周期
- 如果进程执行失败, 应当 kill 整个进程组, 防止该进程 fork 的子进程逃逸