本文简要介绍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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。