Reputation: 2643
When I try and run the server with EventMachine::run
I keep getting the error saying that the port is in use. This started ever since I ran the server in the background with the command nohup
.
I am pretty sure I have killed the process I started:
ps
, and killed it. It no longer shows up.lsof -i :8081
(8081 is the port I ran it on) and nothing shows up.I also thought it could be the lack of me being the root user, so tried it as root to no avail.
I have also restarted the server.
Please let me know if there's anything else I can try.
Note: this is on debian.
Upvotes: 34
Views: 31454
Reputation: 11
Maybe it will save someone's time: In my case rails server won't start on any port returning the same error. Event after restarting my machine. Other servers that refer to localhost didn't work as well.
The problem was in my /etc/hosts
file that somehow became empty. After restoring it to default state the problem was solved.
Upvotes: 1
Reputation: 2426
Running on free port solves the problem by either:
rails s -p 3001
or
ruby script/rails server webrick -e production -p 3001
or
ruby script/rails server thin -e production -p 3001
Upvotes: -1
Reputation: 746
Had the same problem.
Ran lsof -i :3000
(3000 is the port I ran it on).
I found out that the port was being used by ruby. I killed the process using kill -9 *pid*
.
When I ran lsof -i :3000
again, nothing showed up.
I then ran rails s
and everything works fine now.
Upvotes: 51
Reputation: 3075
It happens when you didn't stop your server correctly, for example when suspended with Ctrl+Z or running the server twice.
If stopped by Ctrl+Z, this works for me:
Get the running process with:
$ ps ax | grep rails
18192 pts/28 Sl+ 0:05 /home/admin/.rvm/rubies/ruby-2.1.2/bin/ruby bin/rails c
20496 pts/23 Tl 0:08 /home/admin/.rvm/rubies/ruby-2.1.2/bin/ruby bin/rails s
20919 pts/23 S+ 0:00 grep --color=auto rails
And then kill the process in which rails server
running:
$ kill 20496
If it's not closed after a few seconds you can try to "force" close with with -9
(but this prevents any cleanup from Rails):
$ kill -9 20496
Now you can start the server again:
$ rails s
Upvotes: 26
Reputation: 2643
I have finally figured it out: it was actually the IP address I was binding to that was incorrect!
So essentially it is a very misleading error message, and if you get it, check the IP address too.
Upvotes: 21