如何在 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