Stopping all instances of Ruby on Rails running on a certain port

How to find and stop all instances of Rails running on a specific port

I was having a hard time getting my Rails webserver to restart after it having a bit of an issue. The process to handle most apps when this happens is to locate the PID (Process ID) of the thing that is broken and restart it.

An easy way to do this with Rails is to type the following into your Terminal;

lsof -i :3000

Which looks for all processes running on port 3000 (the most common port for things like Puma, Webrick and Thin to run on) and returns them all as a table.

One of the columns of the table will be the PID for the process, copy it and paste it into the following line which will go into your Terminal;

kill -9 PID

Replacing ‘PID’ with the PID you just copied.

This will stop all processes relating to that PID, once this is done you should be good to go ahead and restart your rails server.

If you prefer video

I’ve explained the use of lsof in a video.

Recent posts View all

Web DevProductivity

Keeping on top of website updates

Learn what website updates are, what they entail, why they are important, and how we can help

Freelancing

Getting the most out of your agency

Here are some tips based on years of working with, for, and as an agency on how to get the most out of any work you do.