本文簡要介紹ruby語言中 Signal.trap
的用法。
用法
trap( signal, command ) → obj
trap( signal ) {| | block } → obj
指定信號的處理。第一個參數是信號名稱(例如“SIGALRM”、“SIGUSR1” 等字符串)或信號編號。可以從信號名稱中省略字符“SIG”。命令或塊指定在發出信號時要運行的代碼。如果命令是字符串“IGNORE” 或“SIG_IGN”,信號將被忽略。如果命令是“DEFAULT” 或“SIG_DFL”,將調用 Ruby 的默認處理程序。如果命令是“EXIT”,腳本將被信號終止。如果命令是“SYSTEM_DEFAULT”,將調用操作係統的默認處理程序。否則,將運行給定的命令或塊。將在程序終止之前調用特殊信號名稱“EXIT” 或信號編號零。陷阱返回給定信號的前一個處理程序。
Signal.trap(0, proc { puts "Terminating: #{$$}" })
Signal.trap("CLD") { puts "Child died" }
fork && Process.wait
產生:
Terminating: 27461 Child died Terminating: 27460
相關用法
- Ruby Signal.list用法及代碼示例
- Ruby Signal.signame用法及代碼示例
- Ruby SignalException類用法及代碼示例
- Ruby Signal模塊用法及代碼示例
- 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.trap。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。