我已经修改了 EventMachine 的 SimpleChatServer 示例,以将 Rails 应用程序用作聊天服务器。我在一个单独的线程中初始化聊天服务器,如下所示。
Thread.new {
puts "I entered a new thread"
EventMachine.run do
puts "I entered a new thread"
EventMachine.start_server("0.0.0.0", 3100, SimpleChatServer)
end
}
我已经在运行 apache 的 VPS 上托管了我的应用程序,并且正在使用 Phusion Passenger 为 rails 应用程序提供服务。聊天服务器运行完美,除了一个问题:几分钟后服务器自动停止。当我检查错误日志时,我没有发现与关机有关的任何内容。然而,我观察到的一件有趣的事情是关机的奇怪行为:在我所在位置的白天(上午 11 点至下午 5 点),聊天服务器在启动几分钟后停止(我的时区比我的服务器时区早 10 小时) )。然而,在我身边的夜间,服务器在没有关闭的情况下继续运行。这种奇怪的行为让我心烦意乱。
我自己的假设是,在我的白天,VPS 有更多的负载要处理,因此它会杀死聊天服务器线程。我能以某种方式避免这种情况吗?我也很想知道这种奇怪行为是否还有其他原因。请在这件事上给予我帮助
另外:当我检查我的错误日志时,我看到了这一点。“[ 2015-03-06 08:00:20.5859 25041/7f20f1439700 代理/HelperAgent/Main.cpp:722 ]:断开进程 25069 的长时间运行的连接” 这里 25069 是我的聊天服务器的 PID。我怎样才能避免这种情况?我如何指示 linux 永远不要杀死我的进程?