我知道我们可以使用 Ctrl-C
rescue Exception, or
rescue SystemExit, or
trap(0) or
trap("SIGTERM") or
trap("INT"),
但是我想处理单击“X”按钮关闭命令提示符的中断,要求是在程序异常终止时记录一些进度,例如系统重新启动或单击“X”按钮,然后我可以继续工作下一次的断点,
我尝试了所有这些,没有一个有效。
你有什么建议吗?可能吗?
我知道我们可以使用 Ctrl-C
rescue Exception, or
rescue SystemExit, or
trap(0) or
trap("SIGTERM") or
trap("INT"),
但是我想处理单击“X”按钮关闭命令提示符的中断,要求是在程序异常终止时记录一些进度,例如系统重新启动或单击“X”按钮,然后我可以继续工作下一次的断点,
我尝试了所有这些,没有一个有效。
你有什么建议吗?可能吗?
尝试这个,
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
块中的代码ensure
将始终运行,即使进程通过 Ctrl-C 终止或关闭终端窗口也是如此。
如果进程没有终止,它也会运行。这可以通过检查循环是否完成来防止。File.open(...) unless @second == 10