私が書いたいくつかのコードの簡略化されたバージョンは次のとおりです。
class InfiniteLoop
def run
trap('SIGTERM') do
puts 'exiting'
exit
end
loop {}
end
end
私が実行した場合:
InfiniteLoop.new.run
私はctrl+c
得ることができます:
exiting
ただし、これを行うと:
t = Thread.new { InfiniteLoop.new.run }
sleep 1
t.terminate
表示されない:
exiting
誰かがここで私を正しい方向に向けることができますか? スレッドを終了するときに同じ動作をしたいと思います。