Sinatra - terminar el servidor de la solicitud

Quiero poder terminar una aplicación Sinatra desde una solicitud, por ejemplo. Con la siguiente ruta:

post '/terminate' do
  Thread.current.kill
end

Implementarlo así es un poco abrupto. Prefiero que la solicitud se complete, devolví un mensaje HTTP OK y luego Sinatra se cerró correctamente.

¿Hay un gancho para hacer esto?

Editar:

Mi aplicación es un servidor simulado liviano que se utiliza para recibir notificaciones de webhook. Usaré varios servidores como este en la misma máquina (diferentes puertos), por lo que debo evitar cualquier método global de inicio / detención.

Mi requerimiento es impulsado por el hecho de que cada servidor debe ejecutarse en su propia instancia de Ruby, por lo tanto no hay comunicación entre mis pruebas y el servidor que no sea a través de la interfaz REST.

Estoy usando el predeterminadothin Servidor para ejecutar Sinatra. Hasta ahora mi código es solo una subclase de Sinatra :: Base, que comencé a usarrun! desde dentro del código. Esto es agradable y simple, puedo hacer scripts independientes para crear instancias de cada servidor, solo necesito tener una forma de detenerlos.

Respuestas a la pregunta(1)

Su respuesta a la pregunta