Как подавить трассировку стека в выходе Ruby?

  trap 'TERM' do
    warn 'Exiting.'
    exit 1
  end

Это печатает 10-строчную трассировку стека.

Как подавить трассировку стека и выйти молча?

Ruby 2.2.0

2 ответа

Решение

Вы можете сделать это так:

trap "TERM" do
  warn "Exiting."
  $stderr.reopen(IO::NULL)
  $stdout.reopen(IO::NULL)
  exit 1
end

Если вы нажмете Ctrl + C, сигнал будет INTне TERM, Если вы хотите поймать оба, вы можете сделать что-то вроде этого:

p = proc do
  warn 'Exiting.'
  exit 1
end
trap 'INT',p
trap 'TERM',p
Другие вопросы по тегам