我正在Windows 7上的Intellij-14中运行一些黄瓜测试(基于ruby)。有时候我想提前停止执行测试,但我仍然希望黄瓜at_exit块中发生的所有清理工作发生。我的解决方案是以下代码:
trap 'SIGINT' do
cleanup
exit 130
end
它确实在接收到ctrl + c时确保清理,但是如果我在Intellij中运行并且我停止执行(按钮被称为“停止进程”),则不会进行清理。
Intellij使用什么信号来停止运行进程?或者,我如何确保每个信号都能进行清理?
答案 0 :(得分:0)
在测试之前有什么阻止你做清理的事吗?这样你就不必担心所有的信号了,如果事情处于不一致的状态,因为intellij杀了它,它仍然没问题。
与此正交:http://man7.org/linux/man-pages/man7/signal.7.html 通常你想要处理:15(TERM),1(HUP),2(INT)