[英]can't start rails server (bad URI(is not URI?): tcp://localhost:5000:3000)
[英]Can't start Rails localhost - (no processes running on port 3000)
试图启动我的Rails服务器,但我得到了这个错误
=> Booting Puma
=> Rails 5.1.4 application starting in development
=> Run `rails server -h` for more startup options
[25156] Puma starting in cluster mode...
[25156] * Version 3.9.1 (ruby 2.4.1-p111), codename: Private Caller
[25156] * Min threads: 5, max threads: 5
[25156] * Environment: development
[25156] * Process workers: 2
[25156] * Preloading application
[25156] * Listening on tcp://0.0.0.0:3000
Exiting
/home/ahmed/.rvm/gems/ruby-2.4.1/gems/puma-3.9.1/lib/puma/binder.rb:269:in `initialize': Address already in use - bind(2) for "0.0.0.0" port 3000 (Errno::EADDRINUSE)
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/puma-3.9.1/lib/puma/binder.rb:269:in `new'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/puma-3.9.1/lib/puma/binder.rb:269:in `add_tcp_listener'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/puma-3.9.1/lib/puma/binder.rb:105:in `block in parse'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/puma-3.9.1/lib/puma/binder.rb:88:in `each'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/puma-3.9.1/lib/puma/binder.rb:88:in `parse'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/puma-3.9.1/lib/puma/runner.rb:144:in `load_and_bind'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/puma-3.9.1/lib/puma/cluster.rb:391:in `run'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/puma-3.9.1/lib/puma/launcher.rb:174:in `run'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/puma-3.9.1/lib/rack/handler/puma.rb:69:in `run'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/rack-2.0.5/lib/rack/server.rb:297:in `start'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/railties-5.1.4/lib/rails/commands/server/server_command.rb:44:in `start'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/railties-5.1.4/lib/rails/commands/server/server_command.rb:135:in `block in perform'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/railties-5.1.4/lib/rails/commands/server/server_command.rb:130:in `tap'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/railties-5.1.4/lib/rails/commands/server/server_command.rb:130:in `perform'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/railties-5.1.4/lib/rails/command/base.rb:63:in `perform'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/railties-5.1.4/lib/rails/command.rb:44:in `invoke'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/railties-5.1.4/lib/rails/commands.rb:16:in `<top (required)>'
from /home/ahmed/Rails/sample_app/bin/rails:9:in `require'
from /home/ahmed/Rails/sample_app/bin/rails:9:in `<top (required)>'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `load'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `call'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/client/command.rb:7:in `call'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/client.rb:30:in `run'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/spring-2.0.2/bin/spring:49:in `<top (required)>'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `load'
from /home/ahmed/.rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `<top (required)>'
from /home/ahmed/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:68:in `require'
from /home/ahmed/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:68:in `require'
from /home/ahmed/Rails/sample_app/bin/spring:15:in `<top (required)>'
from bin/rails:3:in `load'
from bin/rails:3:in `<main>'
我以为端口3000上正在运行某些进程,所以我尝试使用
lsof -wni tcp:3000
但是该命令未返回任何内容,因此看起来很奇怪,有解决方案吗?
更新#1
我从另一个关于stackoverflow的问题运行此代码,我明白了
➜ ~ sudo lsof -iTCP -sTCP:LISTEN -P | grep :3000
ruby 1595 beef-xss 17u IPv4 32839 0t0 TCP *:3000 (LISTEN)
所以我尝试了
kill -9 1595
和
kill -9 32839
但没有任何效果
我也重新启动了计算机,但是存在相同的问题,并且“ tmp / pids”文件夹中没有文件
更新#2
使用以下命令卸载了Beef-xss后解决了该问题
sudo apt-get --purge remove beef-xss
如果您使用的是Linux操作系统
首先,我们将使用fuser命令,该命令标识哪些进程正在使用文件或套接字。
fuser -n tcp 3000
3000 / tcp: 7425
当我们要标识使用TCP或UDP套接字的进程时,使用-n参数,在我的情况下,我想知道谁在使用端口3000。
该命令将使用该数据返回进程的pid,并在ps命令的帮助下获得有关它的更多信息。
ps x | grep 7425
7425 pts / 3 Tl 1:15 /home/carlos/.rvm/rubies/ruby-1.9.3-p0/bin/ruby
script / rails s
这样,我们看到挂起了Rails测试服务器的一个实例,以释放端口,使用我们已经拥有的pid终止进程。
kill -9 7425
然后,我们看到该过程确实已经完成。
ps x | grep 7425
7973 pts / 3 S + 0:00 grep --color = auto 7425
[1] + Finished (killed) rails s
希望对您有用
您是否尝试过删除tmp / pids中的pid文件? 如果文件夹中有任何内容,请尝试使用pgrep -lf puma
查找Puma进程,并查看是否存在任何进程。
我认为您已经在同一端口上运行了另一台服务器,但是不幸的是,您并没有停止此操作,而是关闭了命令提示符,这就是为什么它显示此错误的原因。 因此,如果restart
计算机,则可以解决此问题。
只需重新启动计算机,然后重试即可。
另外,您可以尝试从tmp/pids/
删除文件
我从另一个关于stackoverflow的问题运行此代码,我明白了
➜ ~ sudo lsof -iTCP -sTCP:LISTEN -P | grep :3000
ruby 1595 beef-xss 17u IPv4 32839 0t0 TCP *:3000 (LISTEN)
所以我尝试了
kill -9 1595
和
kill -9 32839
但没有任何效果
我也重新启动了计算机,但是存在相同的问题,并且“ tmp / pids”文件夹中没有文件
更新#2
使用以下命令卸载了Beef-xss后解决了该问题
sudo apt-get --purge remove beef-xss
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.