Ich möchte ein Signal an einen Ruby-Prozess gesendet werden.So fangen Sie Signale in Ruby-Prozess
Der Prozess ist die folgende Datei mit dem Namen wait.rb:
sleep 60
Signal.trap(15) {
puts "caught signal 15!"
}
Ich betreibe wait.rb, und in einer anderen Shell bash die PID wait.rb finden und ausführen:
kill -15 pid
Ich erwartete, dass "Signal 15 gefangen!" würde in der ersten Shell gedruckt werden, wo ich wait.rb ausgeführt habe, aber es ist nicht. Stattdessen erhalte ich diese Ausgabe:
Terminated: 15
Warum ist die puts
Anweisung im Signal.trap
Block nicht ausgeführt?