本文簡要介紹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模塊。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。