本文简要介绍ruby语言中 Signal模块
的用法。
许多操作系统允许将信号发送到正在运行的进程。一些信号对过程有明确的影响,而另一些信号可能会被困在代码级别并采取行动。例如,您的进程可能会捕获 USR1 信号并使用它来切换调试,并且可能使用 TERM 来启动受控关闭。
pid = fork do
Signal.trap("USR1") do
$debug = !$debug
puts "Debug now: #$debug"
end
Signal.trap("TERM") do
puts "Terminating..."
shutdown()
end
# . . . do some work . . .
end
Process.detach(pid)
# Controlling program:
Process.kill("USR1", pid)
# ...
Process.kill("USR1", pid)
# ...
Process.kill("TERM", pid)
产生:
Debug now: true
Debug now: false
Terminating...
可用信号名称列表及其解释取决于系统。 Signal
交付语义也可能因系统而异;特别是信号传递可能并不总是可靠的。
相关用法
- Ruby Signal.trap用法及代码示例
- Ruby SignalException类用法及代码示例
- Ruby Signal.list用法及代码示例
- Ruby Signal.signame用法及代码示例
- Ruby SizedQueue clear()用法及代码示例
- Ruby SizedQueue push()用法及代码示例
- Ruby SimpleDelegator.__setobj__用法及代码示例
- Ruby SizedQueue shift()用法及代码示例
- Ruby SizedQueue enq()用法及代码示例
- Ruby SizedQueue max()用法及代码示例
- Ruby SizedQueue empty?用法及代码示例
- Ruby SingleForwardable模块用法及代码示例
- Ruby SimpleDelegator类用法及代码示例
- Ruby SizedQueue pop()用法及代码示例
- Ruby SizedQueue new()用法及代码示例
- Ruby SizedQueue length()用法及代码示例
- Ruby SizedQueue deq()用法及代码示例
- Ruby SingleLine.new用法及代码示例
- Ruby SingleForwardable.def_single_delegators用法及代码示例
- Ruby Singleton模块用法及代码示例
- Ruby SizedQueue close()用法及代码示例
- Ruby SizedQueue size()用法及代码示例
- Ruby SizedQueue max=用法及代码示例
- Ruby Symbol capitalize用法及代码示例
- Ruby Spotter.spot_op_asgn2_for_name用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Signal模块。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。