我正在尝试部署Rails应用程序与美洲狮网络服务器。当试图使用配置文件bundle exec puma -C config/puma.rb启动Puma服务器时,我会得到一个错误,该地址已经在使用中。
有人知道怎么解决吗?
bundle exec puma -C config/puma.rb
[23699] Puma starting in cluster mode...
[23699] * Version 2.11.3 (ruby 2.0.0-p353), codename: Intrepid Squirrel
[23699] * Min threads: 5, max threads: 5
[23699] * Environment: development
[23699] * Process workers: 2
[23699] * Preloading application
Jdbc-MySQL is only for use with JRuby
[23699] * Listening on tcp://0.0.0.0:3000
/.rvm/gems/ruby-2.0.0-p353/gems/puma-2.11.3/lib/puma/binder.rb:210:in `initialize': Address already in use - bind(2) (Errno::EADDRINUSE)
from /.rvm/gems/ruby-2.0.0-p353/gems/puma-2.11.3/lib/puma/binder.rb:210:in `new'
from /Users/lexi87/.rvm/gems/ruby-2.0.0-p353/gems/puma-2.11.3/lib/puma/binder.rb:210:in `add_tcp_listener'
from /.rvm/gems/ruby-2.0.0-p353/gems/puma-2.11.3/lib/puma/binder.rb:96:in `block in parse'
from /.rvm/gems/ruby-2.0.0-p353/gems/puma-2.11.3/lib/puma/binder.rb:82:in `each'
from /.rvm/gems/ruby-2.0.0-p353/gems/puma-2.11.3/lib/puma/binder.rb:82:in `parse'
from /.rvm/gems/ruby-2.0.0-p353/gems/puma-2.11.3/lib/puma/runner.rb:119:in `load_and_bind'
from /.rvm/gems/ruby-2.0.0-p353/gems/puma-2.11.3/lib/puma/cluster.rb:302:in `run'
from /.rvm/gems/ruby-2.0.0-p353/gems/puma-2.11.3/lib/puma/cli.rb:216:in `run'
from /rvm/gems/ruby-2.0.0-p353/gems/puma-2.11.3/bin/puma:10:in `<top (required)>'
from /.rvm/gems/ruby-2.0.0-p353/bin/puma:23:in `load'
from /.rvm/gems/ruby-2.0.0-p353/bin/puma:23:in `<main>'
from /.rvm/gems/ruby-2.0.0-p353/bin/ruby_executable_hooks:15:in `eval'
from /.rvm/gems/ruby-2.0.0-p353/bin/ruby_executable_hooks:15:in `<main>'发布于 2015-06-25 02:48:28
您需要使用kill -9 59780,并将59780替换为已找到的PID号(使用lsof -wni tcp:3000查看哪个进程使用了3000端口并获得进程PID)。
或者您可以修改puma配置,将tcp端口tcp://127.0.0.1:3000从3000更改为9292或其他未使用的端口。
或者您可以通过以下方式启动rails应用程序:
bundle exec puma -C config/puma.rb -b tcp://127.0.0.1:3001发布于 2016-03-21 12:36:36
若要杀死美洲狮进程,请先运行
lsof -wni tcp:3000 显示使用端口3000的是什么。然后使用结果附带的PID来运行终止进程。
例如,在运行lsof -wni tcp:3000之后,您可能会得到以下内容
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ruby 3366 dummy 8u IPv4 16901 0t0 TCP 127.0.0.1:3000 (LISTEN)现在运行下面的命令来终止该进程。(其中3366是PID)
kill -9 3366应该解决这个问题
发布于 2018-03-06 03:19:27
你也可以试试这个技巧:
ps aux | grep puma样本输出:
myname 77921 0.0 0.0 2433828 1972 s000 R+ 11:17AM 0:00.00 grep puma
myname 67661 0.0 2.3 2680504 191204 s002 S+ 11:00AM 0:18.38 puma 3.11.2 (tcp://localhost:3000) [my_proj]然后:
kill -9 67661https://stackoverflow.com/questions/31039998
复制相似问题