我想知道如何从应用程序本身以编程方式退出 Sinatra 应用程序。(还有另一个关于从应用程序外部停止它的 SO 线程。)
我想使用 Sinatra 作为接收控制和配置命令的一种方式,而我的应用程序执行与 Sinatra 无关的事情。我希望控制命令之一是“退出”。Ruby 的“退出”方法似乎只是导致 Sinatra 恢复和恢复。我在 base.rb 中发现了这一点,我认为这证实了这一点:
at_exit { Application.run! if $!.nil? && Application.run? }
到目前为止,我发现的唯一方法是调用 Ruby 的exit!
方法,但这绕过exit
了钩子并且不是一个非常干净的解决方案。
有没有办法以编程方式告诉 Sinatra 停止?