Ruby: trap

trapruby 中用来截获 linux 系统信号值的。

例子:

# main.rb

puts Process.pid

trap(:SIGUSR1) do
  puts "收到 USER1 信号."
end

sleep
# terminal1
$ ruby main.rb
1146

# terminal2
$ ruby -e "Process.kill(:SIGUSR1, 1146)"

# terminal1
$ ruby main.rb
1146
收到 USER1 信号.