Синатра - завершить работу сервера из запроса

Я хочу иметь возможность завершить приложение Sinatra по запросу, например, по следующему маршруту:

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

Реализация этого, как это немного круто. Я предпочел бы, чтобы запрос был выполнен, вернул сообщение HTTP OK, а затем Синатра грациозно выключился.

Есть ли крюк для этого?

Редактировать:

Мое приложение представляет собой облегченный макет-сервер, используемый для получения уведомлений о веб-крюках. Я буду использовать несколько серверов, подобных этому, на одной машине (разные порты), поэтому нужно избегать любых глобальных методов запуска / остановки.

Мое требование основано на том факте, что каждый сервер должен работать в своем собственном экземпляре Ruby, поэтому между моими тестами и сервером нет никакой связи, кроме как через интерфейс REST.

Я использую по умолчаниюthin Сервер для запуска Синатры. Пока что мой код - это просто подкласс Sinatra :: Base, который начал использоватьrun! из кода. Это красиво и просто, я могу создавать автономные скрипты для создания экземпляров каждого сервера, мне просто нужен способ их остановить.

Ответы на вопрос(1)

Ваш ответ на вопрос