如何在 Ruby 退出时抑制堆栈跟踪?
How to suppress stacktrace in Ruby exit?
trap 'TERM' do
warn 'Exiting.'
exit 1
end
这将打印 10 行堆栈跟踪。
如何抑制堆栈跟踪并静默退出?
Ruby 2.2.0
如果您按 Ctrl + C,信号将是 INT
,而不是 TERM
。如果你想同时抓住两者,你可以这样做:
p = proc do
warn 'Exiting.'
exit 1
end
trap 'INT',p
trap 'TERM',p
你可以这样做:
trap "TERM" do
warn "Exiting."
$stderr.reopen(IO::NULL)
$stdout.reopen(IO::NULL)
exit 1
end
trap 'TERM' do
warn 'Exiting.'
exit 1
end
这将打印 10 行堆栈跟踪。
如何抑制堆栈跟踪并静默退出?
Ruby 2.2.0
如果您按 Ctrl + C,信号将是 INT
,而不是 TERM
。如果你想同时抓住两者,你可以这样做:
p = proc do
warn 'Exiting.'
exit 1
end
trap 'INT',p
trap 'TERM',p
你可以这样做:
trap "TERM" do
warn "Exiting."
$stderr.reopen(IO::NULL)
$stdout.reopen(IO::NULL)
exit 1
end