2
rescue Interrupt => e
捕获信号,但它始终会显示:
^CShutting down!
有没有办法来阻止默认CTRL + Ç输出:
^C
任何想法?
rescue Interrupt => e
捕获信号,但它始终会显示:
^CShutting down!
有没有办法来阻止默认CTRL + Ç输出:
^C
任何想法?
部分终端支持stty -echoctl
禁用的控制字符呼应:
`stty -echoctl`
begin
loop do
# ...
end
rescue Interrupt => e
puts 'shutting down'
end
如果以上不工作,你可以通过设置禁用所有的呼应IO#echo=
到false
:
require 'io/console'
STDIN.echo = false
begin
loop do
# ...
end
rescue Interrupt => e
puts 'shutting down'
end
完美的第二个建议像一个魅力工作。欢呼声,感谢它! –
你是什么试图通过捕捉信号来实现?忽略信号是可能的(也是相对容易的),但是如果你需要一个受控制的关机,可能会有点困难,而没有信息。它看起来像其他库正在显示该消息,并可能期望执行关闭。 –
您能否澄清是否您的代码编写了“关机”! - 即你想要那个信息,而不是回传给终端的“^ C”? –
是的,我的代码确实把“关闭”。当收到信号,我的代码取消当前进程,保存进度,放置“关闭”,并退出0. –