[英]Can't start Rails localhost - (no processes running on port 3000)
tried to start my rails server, but I got that error 试图启动我的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>'
I thought there's some process or something running on port 3000, so I tried to find it using 我以为端口3000上正在运行某些进程,所以我尝试使用
lsof -wni tcp:3000
but the command returns nothing, so that looks very strange, any solutions? 但是该命令未返回任何内容,因此看起来很奇怪,有解决方案吗?
Update #1 更新#1
I run this code from another question on stackoverflow and I got that 我从另一个关于stackoverflow的问题运行此代码,我明白了
➜ ~ sudo lsof -iTCP -sTCP:LISTEN -P | grep :3000
ruby 1595 beef-xss 17u IPv4 32839 0t0 TCP *:3000 (LISTEN)
so I tried 所以我尝试了
kill -9 1595
and 和
kill -9 32839
but nothing worked 但没有任何效果
also I restarted my computer, but the same problem exists, and there are no files inside my "tmp/pids" folders 我也重新启动了计算机,但是存在相同的问题,并且“ tmp / pids”文件夹中没有文件
Update #2 更新#2
Solved it after uninstalling something called beef-xss using 使用以下命令卸载了Beef-xss后解决了该问题
sudo apt-get --purge remove beef-xss
If you are using a Linux operating system 如果您使用的是Linux操作系统
First we will use the fuser command which identifies which processes are using a file or a socket. 首先,我们将使用fuser命令,该命令标识哪些进程正在使用文件或套接字。
fuser -n tcp 3000
3000 / tcp: 7425
The -n parameter is used when we want to identify processes that are using TCP or UDP sockets, in my case I want to know who is using port 3000. 当我们要标识使用TCP或UDP套接字的进程时,使用-n参数,在我的情况下,我想知道谁在使用端口3000。
The command returns the pid of the process, with this data and with the help of the ps command we will obtain more information about it. 该命令将使用该数据返回进程的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
With this we see that an instance of the rails test server was hung, to free the port we killed the process using the pid that we already have. 这样,我们看到挂起了Rails测试服务器的一个实例,以释放端口,使用我们已经拥有的pid终止进程。
kill -9 7425
And then we see that indeed the process has been completed. 然后,我们看到该过程确实已经完成。
ps x | grep 7425
7973 pts / 3 S + 0:00 grep --color = auto 7425
[1] + Finished (killed) rails s
I hope it will be you useful 希望对您有用
The article of the answer http://community.logicalbricks.com/node/103 答案的文章http://community.logicalbricks.com/node/103
Have you tried to delete the pid files in tmp/pids ? 您是否尝试过删除tmp / pids中的pid文件? If there is anything in the folder try to find a Puma process with pgrep -lf puma
and take a look if there's any process of that. 如果文件夹中有任何内容,请尝试使用pgrep -lf puma
查找Puma进程,并查看是否存在任何进程。
I think you have run another server on the same port and you did not stop this unfortunately and command prompt closed, that's why it's showing this error. 我认为您已经在同一端口上运行了另一台服务器,但是不幸的是,您并没有停止此操作,而是关闭了命令提示符,这就是为什么它显示此错误的原因。 SO you can resolve this if you restart
your computer. 因此,如果restart
计算机,则可以解决此问题。
Just restart your computer then try again. 只需重新启动计算机,然后重试即可。
Also, you can try to remove the files from tmp/pids/
另外,您可以尝试从tmp/pids/
删除文件
I run this code from another question on stackoverflow and I got that 我从另一个关于stackoverflow的问题运行此代码,我明白了
➜ ~ sudo lsof -iTCP -sTCP:LISTEN -P | grep :3000
ruby 1595 beef-xss 17u IPv4 32839 0t0 TCP *:3000 (LISTEN)
so I tried 所以我尝试了
kill -9 1595
and 和
kill -9 32839
but nothing worked 但没有任何效果
also I restarted my computer, but the same problem exists, and there are no files inside my "tmp/pids" folders 我也重新启动了计算机,但是存在相同的问题,并且“ tmp / pids”文件夹中没有文件
Update #2 更新#2
Solved it after uninstalling something called beef-xss using 使用以下命令卸载了Beef-xss后解决了该问题
sudo apt-get --purge remove beef-xss
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.