【问题标题】:How to suppress stacktrace in Ruby exit?如何在 Ruby 退出时抑制堆栈跟踪?
【发布时间】:2015-12-07 10:28:19
【问题描述】:
  trap 'TERM' do
    warn 'Exiting.'
    exit 1
  end

这会打印一个 10 行的堆栈跟踪。

如何抑制堆栈跟踪并静默退出?

Ruby 2.2.0

【问题讨论】:

    标签: ruby interrupt ruby-2.2


    【解决方案1】:

    你可以这样做:

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

    【讨论】:

      【解决方案2】:

      如果你按 Ctrl + C,信号将是INT,而不是TERM。如果你想同时抓住两者,你可以这样做:

      p = proc do
        warn 'Exiting.'
        exit 1
      end
      trap 'INT',p
      trap 'TERM',p
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-05
        • 2013-09-18
        • 2013-09-29
        • 1970-01-01
        • 1970-01-01
        • 2017-10-14
        • 2011-04-19
        • 2010-09-27
        相关资源
        最近更新 更多