Как подавить трассировку стека в выходе 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