Golang如何阻止signal传递给os/exec执行的命令
# 自身需求
一个启动器(通过os.exec来启动另一个进程)收到signal后需要进行一个处理逻辑再结束掉子进程,但是默认情况下父子进程同时收到了信号。
# 解决方案
cmd.SysProcAttr = &syscall.SysProcAttr{
Setpgid: true,
}
*nix环境中, 由exec.command开启的子进程的进程组ID默认为为父进程ID,需设置子进程的进程组ID为子进程自身ID
# 参考资料
- https://segmentfault.com/q/1010000007970306
- 原文出处:
- 原文作者: https://github.com/saltbo
- 原文链接:
- 版权声明:本文欢迎任何形式转载,转载时完整保留本声明信息(包含原文链接、原文出处、原文作者、版权声明)即可。本文后续所有修改都会第一时间在原始地址更新。