最近遇到一个问题,请大佬们指点一下!
在linux系统用go做了一个小工具,go里面调用了10个不同级别的用C++编写的网络数据处理工具,go在运行之后,想通过Ctrl+C把程序停掉,但是实际运行中有如下问题: Ctrl+C之后,go程序停止了,但是里面通过os.exec调用执行的C++可执行文件仍然在运行。结果只能通过kill ID的方式一个个kill掉。
请问,Go有没有一种方式在Ctrl+C之后把所有的运行文件都kill掉呢?
先谢谢了!
有疑问加站长微信联系(非本文作者)

最近遇到一个问题,请大佬们指点一下!
在linux系统用go做了一个小工具,go里面调用了10个不同级别的用C++编写的网络数据处理工具,go在运行之后,想通过Ctrl+C把程序停掉,但是实际运行中有如下问题: Ctrl+C之后,go程序停止了,但是里面通过os.exec调用执行的C++可执行文件仍然在运行。结果只能通过kill ID的方式一个个kill掉。
请问,Go有没有一种方式在Ctrl+C之后把所有的运行文件都kill掉呢?
先谢谢了!
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`
捕获推出信号,然后你想做啥就做啥
创建
os/exec.Cmd
的时候给SysProcAttr
字段的Pdeathsig
赋值SIGKILL
@criyle 非常感谢!