Я создаю приложение Ruby, которое запускает сервер EM :: WebSocket, а также сервер Sinatra. Я считаю, что оба они оснащены для обработки SIGINT. Однако при запуске в одном приложении приложение продолжает, когда я нажимаю Ctrl + C. Мое предположение состоит в том, что один из них захватывает SIGINT, не позволяя другому захватить его. Я не уверен, как это сделать.Ctrl + C не убивает Sinatra + EM :: Серверы WebSocket
Вот код в двух словах:
require 'thin'
require 'sinatra/base'
require 'em-websocket'
EventMachine.run do
class Web::Server < Sinatra::Base
get('/') { erb :index }
run!(port: 3000)
end
EM::WebSocket.start(port: 3001) do |ws|
# connect/disconnect handlers
end
end
Является ли это какой-либо помощи? http://stackoverflow.com/questions/6456912/thin-doesnt-respond-to-sigint-or-sigterm –
Спасибо за обмен. Я попробовал несколько вариантов захвата INT и TERM на основе этого вопроса/принятого ответа SO, но ничто, похоже, не работает для меня. –