uncaught exception address already in use bind(2)
uncaught exception address already in use bind(2)
You might came across uncaught exception address already in use bind(2) error while trying to start TCP Server for starting your Rails Application. We will see why Address already in use error is thrown by programs while execution. This is most common error that you will come across while developing Rails Application and solution for this is very simple.
Root Cause
Basically the error is self explanatory. It means that server is already started and you are trying to start it again or the some other application is already running on the specific port on TCP server. Thus your program is not able to gain access to that specific port on TCP server.
Finding Process which Process is running
We can find which process is using the address which Rails app tries to run on by using following command:
The above command basically finds process which is using TCP server and 3000 as port address.
The result of above process will be something like:
COMMAND | PID | USER | FD | TYPE | DEVICE | SIZE/OFF | NODE | NAME |
---|---|---|---|---|---|---|---|---|
ruby | 4662 | username | 12u | IPv4 | 0x7bc22ecf743faec3 | 0t0 | TCP | *:hbci |
Then you will have to kill the process that is using the TCP server with specified source in given command.
Eliminating(Killing) the Process
The process can be killed by using following command:
e.g.
The option -9 is passed to killing the process forcefully.
Re-Running Your Program
Now, you can try running your Rails/Other application and it will start without throwing error: Uncaught exception: Address already in use - bind(2).
Subscribe to Ruby in Rails
Get the latest posts delivered right to your inbox