我想了解如何在Sinatra应用程序内部以编程方式退出应用程序。 (有另一个SO线程可以停止外部应用程序。)
我希望使用Sinatra作为接收控制和配置命令的手段,同时我的应用程序执行与Sinatra无关的任务。 我想要一个控制命令是“exit”。 Ruby的“exit”方法似乎只会导致Sinatra恢复并恢复。 我在base.rb中发现了这个问题,我认为它证实了这一点:
到目前为止,我发现唯一的方法是调用Ruby的
我希望使用Sinatra作为接收控制和配置命令的手段,同时我的应用程序执行与Sinatra无关的任务。 我想要一个控制命令是“exit”。 Ruby的“exit”方法似乎只会导致Sinatra恢复并恢复。 我在base.rb中发现了这个问题,我认为它证实了这一点:
at_exit { Application.run! if $!.nil? && Application.run? }
到目前为止,我发现唯一的方法是调用Ruby的
exit!
方法,但这将绕过exit
钩子,并且不是一个很干净的解决方案。是否有办法以编程方式告诉Sinatra停止?
exit!
。(续) - Keith Bennett