首先,我知道这个错误已经在这里列出了,但问题不同。
我有一个Rails 4应用程序,以前是在Puma上运行的。
然后,我的一个朋友为该应用程序工作,并建议我们改用Foreman。
所以,我过去会在终端中使用
现在,我应该使用
问题是,几乎每次尝试启动应用程序时,都会出现以下错误:
我有一个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
我该如何修复这个问题?
—————
更新:我也尝试了下面两个步骤中的所有内容,正如此处所推荐的那样:
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 端口? - doublesharplsof
,ruby
正在运行,但是它是“无头”的,因为您无法从命令行控制它。在启动新应用程序之前,您需要停止使用端口 3000 的进程。尝试使用killall -9 ruby
命令停止进程,然后启动您的应用程序。 - doublesharp