我希望捕获从控制台发送的Ctrl+C (SIGINT
) 信号,并打印出一些部分运行总数。
仅供记录,如果有人需要在Windows上处理信号的方法。
我有一个要求,即通过os/exec从程序A调用程序B进行处理,但是由于在Windows上不支持通过cmd.Process.Signal(syscall.SIGTERM)
或其他信号发送信号,因此程序B无法正常终止。
我通过创建一个临时文件作为信号来解决了这个问题。例如,程序A创建文件.signal.term
,程序B需要定期检查该文件是否存在。如果文件存在,则退出程序并进行必要的清理。
我相信还有其他方法,但这个方法可以胜任工作。