не могу открыть сервер рельсов - PullRequest
14 голосов
/ 12 августа 2011

Я не знаю, что я сделал. Я думаю, что я обновил свой Ruby on Rails. После обновления я всегда получаю сообщение об ошибке при запуске сервера $ rails.

вывод

ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/utils.rb:73:in `initialize': Address already in use - bind(2) (Errno::EADDRINUSE)

Я бы перезапустил консоль и запустил rails server, и он работал бы нормально в течение пары минут, но затем он перестал бы отвечать, и если я перезапущу rails server, он снова выдаст эту ошибку. Я попытался запустить на другом порту (rails s -p 9191), и это дает мне ту же проблему.

Есть идеи, что я сделал не так? Спасибо ребята

Ответы [ 3 ]

34 голосов
/ 12 августа 2011

запустите его на другом порту:

rails s -p 3001

, поэтому он загрузится на localhost:3001

или убить все процессы ruby:

killall ruby

, а затем запустить rails s

22 голосов
/ 12 августа 2011

Я думаю, что ваш сервер rails продолжает работать после того, как вы его закроете.Вы можете попробовать как

ps aux | grep ruby

увидеть pid и затем убить этот pid

kill -9 <pid>

Теперь вы можете перезагрузить сервер, используя

rails s

Примечание В следующий раз попробуйте использовать Ctrl D для завершения сервера rails.Это может помочь

1 голос
/ 29 января 2017

Я тоже столкнулся с проблемой все это из-за того, что экземпляры ruby ​​не завершены должным образом. Мы можем завершить процессы, работающие в фоновом режиме, с помощью pids.

lsof -wni tcp:3000

Отображает все запущенные pids ruby.and завершить этоpids.

kill -9 PID

Или используйте

killall ruby
...