systemuのハマりどころ

会社でちょっと話題になった。上司が解決してくれたのでメモしておく。
プロセスが長く掛かりそうなときに途中で殺す処理を入れることがある。
https://github.com/ahoward/systemuによると

      require 'systemu'
begin    
      looper = %q( ruby -e" loop{ STDERR.puts Time.now.to_i; sleep 1 } " )
    
      status, stdout, stderr =
        systemu looper do |cid|
          sleep 3
          # <この辺>
          Process.kill 9, cid
          
        end
    
      p status
      p stderr
rescue => ex # <例外キャッチ>
  # 例外処理
end

こんなソースコードがある。
問題なのは<この辺>で例外が発生した時にどうなるかだ。
<例外キャッチ>でキャッチできない。
do-endブロックの中でbegin-endしてやらないとダメ。