Rails Update to 3.2.11中断运行多个服务器

时间:2013-01-15 00:41:47

标签: ruby-on-rails-3.2

我们的应用程序在不同的端口运行两个Rails服务器,这些服务器相互通信。使用Rails 3.2.8,我可以打开一个终端,cd到项目,运行rails s -p3000,打开另一个终端,运行rails s -p3001,一切正常。 gem文件包含thin,因此thin会自动启动,但使用rails s将允许在需要时使用--debugger

自更新Rails 3.2.11以来,这不再适用。我收到一个错误:“服务器已在运行。请检查/home/george/Projects/dashboard/tmp/pids/server.pid”。我可以直接在两个端口上启动thin,但是没有调试支持。在另一个上启动thin而在另一个上启动rails似乎不起作用,但是当错误停止服务器时,并不清楚所有服务器任务都被杀死了。

3 个答案:

答案 0 :(得分:33)

两个命令都在检查默认的PID文件位置(tmp/pids/server.pid),因此您会看到此错误。尝试运行多个服务器,如下所示:

服务器1: bundle exec rails s

服务器2: bundle exec rails s -p 3001 -P tmp/pids/server2.pid

答案 1 :(得分:2)

在Stackoverflow上发布的其他内容提到如果你在使用rails 3.2.11时遇到问题,请尝试在{1.4}处锁定rack。到目前为止,这似乎有效。我补充说:

gem 'rack' , '1.4.1'

gemfile,然后执行

bundle update rack

答案 2 :(得分:0)