简体   繁体   English

无法启动Rails本地主机-(端口3000上未运行任何进程)

[英]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.

相关问题 无法启动Rails服务器(错误的URI(不是URI?):tcp:// localhost:5000:3000) - can't start rails server (bad URI(is not URI?): tcp://localhost:5000:3000) Docker,使用docker flag -p 3000:3000无法从localhost:3000到达“rails server”开发 - Docker, can't reach “rails server” development from localhost:3000 using docker flag -p 3000:3000 Ruby on Rails在Windows上无法连接到localhost:3000、127.0.0.1:3000和0.0.0.0:3000 - Ruby on Rails can't connect to localhost:3000, 127.0.0.1:3000 and 0.0.0.0:3000 on Windows 无法访问在 localhost:3000 上本地运行的生产环境 rails 应用程序 - Can not access production env rails app running local on localhost:3000 在vagrant中无法连接localhost:3000 ruby​​ on rails - can't connect localhost:3000 ruby on rails in vagrant 无法在端口3000上打开Puma服务器,也找不到任何要杀死的进程 - can't open Puma server on port 3000 and can't find any processes to kill Rails 服务器正在运行,但无法连接到 localhost:3000 - Rails server is running, but cannot connect to localhost:3000 无法访问localhost:3000 ruby​​ on rails ubuntu - Can not acces localhost:3000 ruby on rails ubuntu 在rails start上找不到此localhost页面 - This localhost page can't be found on rails start 无法将Localhost:3000 Ruby on Rails页面与Heroku链接-一个月的Rails教程 - Can't link Localhost:3000 Ruby on Rails Page with Heroku - One Month Rails Tutorial
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM