【发布时间】:2012-08-01 10:49:28
【问题描述】:
我正在开发一个 Java 应用程序,该应用程序利用关闭挂钩来清理程序的终止/中断,但我注意到 Cygwin 的 CTRL-C 实现似乎不会触发关闭挂钩。从表面上看,它似乎中断了进程,将控制权交还给命令行,但根本没有触发进程的关闭挂钩,因此不会发生清理。
在 cmd 中他们被抓住了,但由于各种限制,我需要以某种方式让他们在 Cygwin 中工作。
有没有什么方法可以通过 Cygwin 在正在运行的进程中触发 SIGINT,或者是否可以替代关闭挂钩来清理中断和终止?
【问题讨论】:
-
奇怪,我可以在 python 中捕获 SIGINT,在 cygwin 中,没有问题。查看stackoverflow.com/questions/1028687/… 了解其他想法。
-
这很奇怪,我的尝试关闭了进程,但如果一个 SIGINT 被设置,我的 Java 应用程序的关闭挂钩肯定没有捕捉到它 - 程序退出但清理不执行。不过,我会看看那个帖子,谢谢。
标签: java cygwin interrupt sigint shutdown-hook