我正在构建一个运行EM :: WebSocket服务器以及Sinatra服务器的Ruby应用程序。单独来说,我相信这些都能够处理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 –
感谢分享。我尝试了一些基于SO问题/接受答案来捕获INT和TERM的变体,但似乎没有任何工作适合我。 –