Прежде всего, я знаю this error has already been listed here, но вопрос был другим.Адрес уже используется - bind (2) для "0.0.0.0" port 3000 (Errno :: EADDRINUSE)
У меня есть приложение Rails 4, которое я использовал для запуска на Puma.
Затем, приятель мин работал над приложением и рекомендовал вместо этого использовать Foreman.
Итак, я использовал приложение локально с rails s
в терминале.
Теперь я должен сделать это с foreman start
.
Проблема заключается в том, почти каждый раз, когда я пытаюсь запустить приложение, я получаю следующее сообщение об ошибке:
foreman start
08:42:28 web.1 | started with pid 3398
08:42:28 web.1 | [3398] Puma starting in cluster mode...
08:42:28 web.1 | [3398] * Version 2.13.4 (ruby 2.2.1-p85), codename: A Midsummer Code's Dream
08:42:28 web.1 | [3398] * Min threads: 5, max threads: 5
08:42:28 web.1 | [3398] * Environment: development
08:42:28 web.1 | [3398] * Process workers: 2
08:42:28 web.1 | [3398] * Preloading application
08:42:31 web.1 | [3398] * Listening on tcp://0.0.0.0:3000
08:42:31 web.1 | /Users/TXC/.rvm/gems/ruby-2.2.1/gems/puma-2.13.4/lib/puma/binder.rb:231:in `initialize': Address already in use - bind(2) for "0.0.0.0" port 3000 (Errno::EADDRINUSE)
08:42:31 web.1 | from /Users/TXC/.rvm/gems/ruby-2.2.1/gems/puma-2.13.4/lib/puma/binder.rb:231:in `new'
08:42:31 web.1 | from /Users/TXC/.rvm/gems/ruby-2.2.1/gems/puma-2.13.4/lib/puma/binder.rb:231:in `add_tcp_listener'
08:42:31 web.1 | from /Users/TXC/.rvm/gems/ruby-2.2.1/gems/puma-2.13.4/lib/puma/binder.rb:98:in `block in parse'
08:42:31 web.1 | from /Users/TXC/.rvm/gems/ruby-2.2.1/gems/puma-2.13.4/lib/puma/binder.rb:84:in `each'
08:42:31 web.1 | from /Users/TXC/.rvm/gems/ruby-2.2.1/gems/puma-2.13.4/lib/puma/binder.rb:84:in `parse'
08:42:31 web.1 | from /Users/TXC/.rvm/gems/ruby-2.2.1/gems/puma-2.13.4/lib/puma/runner.rb:119:in `load_and_bind'
08:42:31 web.1 | from /Users/TXC/.rvm/gems/ruby-2.2.1/gems/puma-2.13.4/lib/puma/cluster.rb:304:in `run'
08:42:31 web.1 | from /Users/TXC/.rvm/gems/ruby-2.2.1/gems/puma-2.13.4/lib/puma/cli.rb:215:in `run'
08:42:31 web.1 | from /Users/TXC/.rvm/gems/ruby-2.2.1/gems/puma-2.13.4/bin/puma:10:in `<top (required)>'
08:42:31 web.1 | from /Users/TXC/.rvm/gems/ruby-2.2.1/bin/puma:23:in `load'
08:42:31 web.1 | from /Users/TXC/.rvm/gems/ruby-2.2.1/bin/puma:23:in `<main>'
08:42:31 web.1 | from /Users/TXC/.rvm/gems/ruby-2.2.1/bin/ruby_executable_hooks:15:in `eval'
08:42:31 web.1 | from /Users/TXC/.rvm/gems/ruby-2.2.1/bin/ruby_executable_hooks:15:in `<main>'
08:42:31 web.1 | exited with code 1
08:42:31 system | sending SIGTERM to all processes
Как я могу это исправить?
-----
UPDATE: Я тоже попробовал и то и ниже, as recommended here:
ps aux | grep rails
3547 0,0 0,0 2434840 752 s000 S+ 8:48 0:00.00 grep rails
Но нет ruby bin/rails server
и что:
lsof -wni tcp:3000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ruby 808 TXC 8u IPv4 0x4f6da234a6116dab 0t0 TCP *:hbci (LISTEN)
ruby 809 TXC 8u IPv4 0x4f6da234a6116dab 0t0 TCP *:hbci (LISTEN)
ruby 810 TXC 8u IPv4 0x4f6da234a6116dab 0t0 TCP *:hbci (LISTEN)
, но Я не уверен, что я должен делать с этим.
Должен ли я перезагружать компьютер каждый раз, когда я хочу запустить приложение локально?
Если вы запустите 'netstat -na', вы видите что-то еще, используя порт 3000? – doublesharp
Спасибо за ваш комментарий. Это для меня очень ново, поэтому, пожалуйста, извините мой немой вопрос: где я должен смотреть, точно? Команда генерирует 200 строк информации. –
на основе вашего обновления с использованием 'lsof',' ruby' запущен, но он «безголовый», так как вы не можете управлять им из командной строки. вам нужно остановить процесс, используя порт 3000, прежде чем вы сможете начать новый. попробуйте «killall -9 ruby», а затем запустите приложение. – doublesharp