Обновление Rails до 3.2.11 прерывает работу нескольких серверов
Наше приложение запускает два сервера Rails в разных портах, которые разговаривают друг с другом. Используя Rails 3.2.8, я мог бы открыть терминал, cd
для проекта, запустить rails s -p3000
, открыть другой терминал, запустить rails s -p3001
, и все сработало нормально. Gemfile содержит thin
, поэтому thin
будет запускаться автоматически, но с помощью rails s
разрешено использовать --debugger
при необходимости.
С момента обновления Rails 3.2.11 это больше не работает. Я получаю сообщение об ошибке: "Сервер уже запущен. Проверьте /home/george/Projects/dashboard/tmp/pids/server.pid". Я могу запустить thin
непосредственно на обоих портах, но затем не имеет поддержки отладки. Запуск thin
на одном и rails
с другой, казалось, не работал, но было неясно, что все серверные задачи были убиты, когда ошибка остановила сервер.
Ответы
Ответ 1
Обе команды проверяют местоположение файла PID по умолчанию (tmp/pids/server.pid
), поэтому вы видите эту ошибку. Попробуйте запустить несколько серверов:
Сервер 1: bundle exec rails s
Сервер 2: bundle exec rails s -p 3001 -P tmp/pids/server2.pid
Ответ 2
В другом месте Stackoverflow упоминалось, что если у вас возникли проблемы с рельсами 3.2.11, попробуйте заблокировать rack
в 1.4.1. Это пока работает. Я добавил:
gem 'rack' , '1.4.1'
в gemfile
, а затем выполним
bundle update rack
Ответ 3
попробуйте использовать мастера https://github.com/ddollar/foreman
Railscast: http://railscasts.com/episodes/281-foreman?view=comments