我知道我们可以使用
处理Ctrl-Crescue Exception, or
rescue SystemExit, or
trap(0) or
trap("SIGTERM") or
trap("INT"),
但我想处理单击“X”按钮以关闭命令提示符的中断,要求是在程序终止异常时记录一些进度,例如系统重启或点击“X”按钮,然后我可以在下次的断点继续工作,
我尝试了所有这些,没有效果。
你有什么建议吗?有可能吗?答案 0 :(得分:0)
试试这个,
begin
10.times do |second|
@second = second
sleep 1
end
ensure
File.open("/tmp/terminated.txt", 'w') do |f|
f.write("Process terminated after #{@second} second(s)")
end
end
即使进程通过Ctrl-C终止或关闭终端窗口,ensure
块中的代码也将始终运行。
如果进程未终止,它也会运行。可以通过检查循环是否已完成来防止这种情况。 File.open(...) unless @second == 10