这是我编写的一些代码的简化版本:
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
有人可以在这里指出我正确的方向吗?我希望在终止线程时具有相同的行为。