A server is already running. Check …/tmp/pids/server.pid. Exiting - rails

Ruby on-Rails

Ruby on-Rails Problem Overview


..$ rails s
=> Booting WEBrick
=> Rails 4.0.4 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
A server is already running. Check /home/..name/rprojects/railsapp/tmp/pids/server.pid.
Exiting

what is the easiest way to solve this for a rails beginner?

Ruby on-Rails Solutions


Solution 1 - Ruby on-Rails

You can delete the server.pid file.

rm /your_project_path/tmp/pids/server.pid

Else:

try in OSX:

sudo lsof -iTCP -sTCP:LISTEN -P | grep :3000

or in linux:

ps -aef | grep rails

or

lsof -wni tcp:3000

kill the process using

kill -9 PID (eg,2786)

Solution 2 - Ruby on-Rails

Short and Crisp single line command, that will take care of it.

kill -9 $(lsof -i tcp:3000 -t)

Solution 3 - Ruby on-Rails

server.pid only contains the process ID of the running server.

If you do:

more /your_project_path/tmp/pids/server.pid

you will get a number (say 6745) which you can use to stop the previous server with the command kill:

kill -9 6745

and then you can remove the file with the rm command

rm /your_project_path/tmp/pids/server.pid

Solution 4 - Ruby on-Rails

If you are using docker-compose, and in docker-compose.yml have:

volumes:
  - .:/myapp

That means you local workspace is mapped to the container's /myapp folder.

Anything in /myapp will not be deleted for the volumes define.

You can delete ./tmp/pids/server.pid in you local machine. Then the container's /myapp will not have this file.

Solution 5 - Ruby on-Rails

Simple:

go in the root folder of the project when this happens and run:

gem install shutup
shutup

This will find the process currently running, kill it and clean up the pid file

NOTE: if you are using rvm install the gem globally

rvm @global do gem install shutup

Solution 6 - Ruby on-Rails

Run this command -

lsof -wni tcp:3000

then you will get the following table -

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
ruby    2552 shyam   17u  IPv4  44599      0t0  TCP 127.0.0.1:3000 (LISTEN)
ruby    2552 shyam   18u  IPv6  44600      0t0  TCP [::1]:3000 (LISTEN)

Run this command and replace PID from the Above table

kill -9 PID

example:

kill -9 2552

Solution 7 - Ruby on-Rails

Issue can be solved using:

kill -9 $(more /home/..name/rprojects/railsapp/tmp/pids/server.pid)

Solution 8 - Ruby on-Rails

It happens sometimes because you turn off the server by force, for example turning off the OS/machine manually so that the server does not have enough time to log to server.pid.

One easy way is to manually go to tmp/pids/ (the directory that is shown in your console.) and remove server.pid file. Then, when you start the server again, rails server or rails s ,it creates a new server.pid and you can continue development.

Solution 9 - Ruby on-Rails

First Find PID # - where the Rails Server got stuck on

Run this to find the stuck PID

cat ./tmp/pids/server.pid

It will return something like 65829

Then KILL that PID => kill 65829

Solution 10 - Ruby on-Rails

Kill server.pid by using command:

kill -9 `cat /root/myapp/tmp/pids/server.pid`

Note: Use your server.pid path which display in console/terminal.

Thank you.

Solution 11 - Ruby on-Rails

the gui way for Windows user

open the ResourceMonitor (taskmanager ->Performance -> ResourceMonitor) and kill the ruby.exe process

enter image description here

Solution 12 - Ruby on-Rails

For added information, under the context of running the application in docker.

In docker-compose.yml file, under the application container itself, you can use one of the following:

command: ["rm /your-app-path/tmp/pids/server.pid && bundle exec bin/rails s -p 3000 -b '0.0.0.0'"]

or

command: ["rm /your-app-path/tmp/pids/server.pid; foreman start"]

Note the use of either ; or &&, that && will send an exit signal if rm fails to find the file, forcing your container to prematurely stop. Using ; will continue to execute.

Why is this caused in the first place? The rationale is that if the server (puma/thin/whatever) does not cleanly exit, it will leave a pid in the host machine causing an exit error.

For portability rather than manually deleting the file on the host system, it's better to check if the file exists within scripted or compose file itself.

Solution 13 - Ruby on-Rails

Open the path/to/your/rails/project/tmp/pids/server.pid file.

Copy the number you find therein.

Run kill -9 [PID]

Where [PID] is the number you copied from the server.pid file.

This will kill the running server process and you can start your server again without any trouble.

Solution 14 - Ruby on-Rails

For this problem,

What i did is:

  • Delete the Pids folder which is located under app/tmp/

  • and then, close the terminal which we are running the current app and close the tab (in, browser window)

  • after that, again open the terminal by going inside the folder, and then do, rails s

  • Then, it opens the fresh tab which is running our application

Solution 15 - Ruby on-Rails

first copy the cumber inside the file then remove it: rm /your_project_path/tmp/pids/server.pid then create it again. touch /YOUR_PROJECT_PATH/tmp/pids/server.pid It worked for me.

Solution 16 - Ruby on-Rails

Run given below command on terminal ( for linux only )

ps aux | grep rails

and then

kill -9 [pid]

Another way

lsof -wni tcp:3000

and then

kill -9 [PID]

Solution 17 - Ruby on-Rails

SOLVING

Address already in use — bind(2)” 500 error in Ruby on Rails

Recently I tried running a Rails app on a production server. Not only did it not work, but it broke my localhost:3000 development server as well. Localhost would only load a blank white page or a 500 error.

To solve this, I used two quick commands. If these don’t return a result, you may need to look elsewhere for a solution, but this is a good quick fix.

lsof -wni tcp:3000

ruby 52179 rachelchervin 50u IPv6 0x...7aa3 0t0 TCP [::1]:hbci (LISTEN) ruby 52179 rachelchervin 51u IPv4 0x...c7bb 0t0 TCP 127.0.0.1:hbci (LISTEN) ruby 52180 rachelchervin 50u IPv6 0x...7aa3 0t0 TCP [::1]:hbci (LISTEN) ruby 52180 rachelchervin 51u IPv4 0x...c7bb 0t0 TCP 127.0.0.1:hbci (LISTEN)

This command shows all of my currently running processes and their PIDs (process IDs) on the 3000 port. Because there are existing running processes that did not close correctly, my new :3000 server can’t start, hence the 500 error.

kill 52179

kill 52180

rails s

I used the Linux kill command to manually stop the offending processes. If you have more than 4, simply use kill on any PIDs until the first command comes back blank. Then, try restarting your localhost:3000 server again. This will not damage your computer! It simply kills existing ruby processes on your localhost port. A new server will start these processes all over again. Good luck!

Solution 18 - Ruby on-Rails

SOLUTION for Windows:

  1. see the pid from \tmp\pids\server.pid
  2. open cmd as administrator
  3. taskkill /F /PID [pid from step 1.]
  4. delete server.pid file
  5. restart server

Solution 19 - Ruby on-Rails

For ubuntu 20, kill -9 $(ps -aef | grep rails)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionbenView Question on Stackoverflow
Solution 1 - Ruby on-RailsbenView Answer on Stackoverflow
Solution 2 - Ruby on-RailsKaran PurohitView Answer on Stackoverflow
Solution 3 - Ruby on-RailsmuichkineView Answer on Stackoverflow
Solution 4 - Ruby on-RailsLaneView Answer on Stackoverflow
Solution 5 - Ruby on-RailsLorenzo SinisiView Answer on Stackoverflow
Solution 6 - Ruby on-RailsPradnyesh patilView Answer on Stackoverflow
Solution 7 - Ruby on-RailswebsterView Answer on Stackoverflow
Solution 8 - Ruby on-RailsDragonKnightView Answer on Stackoverflow
Solution 9 - Ruby on-RailsJonathan SanchezView Answer on Stackoverflow
Solution 10 - Ruby on-RailsRahul2692View Answer on Stackoverflow
Solution 11 - Ruby on-RailsAlexander Sidikov PfeifView Answer on Stackoverflow
Solution 12 - Ruby on-RailsmirageglobeView Answer on Stackoverflow
Solution 13 - Ruby on-RailsDaniel OkwufuluezeView Answer on Stackoverflow
Solution 14 - Ruby on-RailssowmyaView Answer on Stackoverflow
Solution 15 - Ruby on-RailsMounaimView Answer on Stackoverflow
Solution 16 - Ruby on-RailsArvind singhView Answer on Stackoverflow
Solution 17 - Ruby on-RailsThomasView Answer on Stackoverflow
Solution 18 - Ruby on-Railstanay burrejaView Answer on Stackoverflow
Solution 19 - Ruby on-RailsriddhiView Answer on Stackoverflow