我有一个包含在守护进程中的Sinatra应用程序,如果在Sinatra初始化中出现问题,我在退出Sinatra和守护进程时遇到问题。
以下是Sinatra类(在system.rb中)的一个非常简短的示例:
class System < Sinatra::Base
def initialize
if(somethingGoesWrong)
exit!
end
end
end
这是包装Sinatra应用程序的守护进程(在sinatra.rb中):
Daemons.run_proc('SinatraSystem') do
System.run!
end
当出现问题并且程序需要结束时,运行停止,但是pid文件以及需要清除的任何其他内容都会被遗忘而不会被删除。似乎Sinatra对于试图结束守护进程非常挑剔,或者守护进程一直在试图让Sinatra试图戒掉。有关清除逃脱Sinatra应用程序和守护进程的方法的任何建议吗?