Address already in use - bind(2) (Errno::EADDRINUSE)

I made a new rails app and when i started the server ,it gave
following error message.

=> Booting Mongrel
=> Rails 2.3.8 application starting on
=> Call with -d to detach
=> Ctrl-C to shutdown server
`initialize_without_backlog': Address already in use - bind(2)
  from /usr/lib/ruby/1.8/mongrel/tcphack.rb:12:in `initialize'
  from /usr/lib/ruby/1.8/mongrel.rb:93:in `new'
  from /usr/lib/ruby/1.8/mongrel.rb:93:in `initialize'
  from /var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/handler/mongrel.rb:
10:in `new'
  from /var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/handler/mongrel.rb:
10:in `run'
  from /var/lib/gems/1.8/gems/rails-2.3.8/lib/commands/server.rb:111
  from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in
  from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
  from script/server:3

Please help to resolve.


Hi Amrit,

You cannot run two application on the same port. One of your application is already running using port 3000. And you are trying to run another application on the same port.

If you want to run another application, then use the following command to do that:

rub script/server -p 3001

where 3001 is the port number. You choose any other ports also.


You already have a server running on port 3000. Probably another Webrick server you started earlier in a different terminal window. It even says so: Address already in use. I don’t see how it could be any more obvious.

Best regards

Peter De Berdt

Is there any way to check,how many ports are already in use,so
that i can stop the application which are already running on those.?


on linux - "lsof | grep -i ruby"


on linux - "lsof | grep -i ruby"

I would like to recommend:
  lsof -i :3000
(given that the zombie server is running on port 3000)

and then to check a reported <PID>:
  ps ax | grep <PID>

before final:
  kill -QUIT <PID>

I agree with Peter De Berdt ..

Another webrick server is still running

Just close the shell and reopen it..

and then run

'rails server' again

you can check which process is running on that port by typing on command line

lsof -i tcp:port number and than kill that process by typing

kill -9 process#

and that start the rails server -p 3000

Did you all realise you are responding to a post from 2011?


Gmail Random Delivery strikes again!