在 Golang 中,是否可能以"defer"的方式捕获并运行 Ctrl+C 信号(SIGINT) 的清理功能?

283

我希望捕获从控制台发送的Ctrl+C (SIGINT) 信号,并打印出一些部分运行总数。

11个回答

-4

仅供记录,如果有人需要在Windows上处理信号的方法。

我有一个要求,即通过os/exec从程序A调用程序B进行处理,但是由于在Windows上不支持通过cmd.Process.Signal(syscall.SIGTERM)或其他信号发送信号,因此程序B无法正常终止。

我通过创建一个临时文件作为信号来解决了这个问题。例如,程序A创建文件.signal.term,程序B需要定期检查该文件是否存在。如果文件存在,则退出程序并进行必要的清理。

我相信还有其他方法,但这个方法可以胜任工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接