Finding and stopping stray server processes
Published: Sat, Aug 28, 2021

When running servers from the terminal, it is often nice to know how to shut them down manually in case things go wrong or you lose a terminal window. To dime myself out, it's usually closing down a terminal window without stopping Browser Sync, Rails server, or Python's SimpleHTTPServer. We're all learning, right?
The easiest way to find and shut down that errant process is to examine what files are currently open. Enter the command lsof
. The command is an abbreviation of "list open files" and reports currently open files and what processes are using them.
Using by itself is not enormously helpful since the list is always quite lengthy. Since most of the time the tools I am using are server-based, I can take advantage of the -i
flag, which selects by IP, host, or port.
Below are a list of commonly used ports on my projects. Your list may differ but it would be handy to know ahead of time what ports your services work on.
- Browsersync and Eleventy use 8080
- Python simple server defaults to 8000
- Jekyll defaults to 4000
- Webpack and Ruby on Rails server defaults to 3000
When using the -i
flag, there are 4 options that can be fed in, but we only need to focus on the last one, the service and port. The following is how the lsof
command should be constructed.
lsof -i tcp:PORTNUMBER
Here it is in action, looking for a process on port 8080:
After finding the errant process, take note of its PID. Use the kill
command with the process number to stop it. There are various signals that tell how kill
how agressive it should be when stopping a process. It defaults to -15 when none are provided, which allows the process to gracefully shut down. For unruly processes, use -9
which will kill the process.
kill 1234 #where 1234 is the PID
kill -9 1234
The kill
command does not print anything back onto the screen. Use the lsof
command again to confirm that the process no longer shows. If it is still running, it may be appropriate to use kill -9
.

I'm open to work!
- Looking for a back-end or full-stack position that will leverage my strength in researching business processes and translating them into code.
- I've worked with JavasScript, Ruby, and PHP but am game to learn other scripting languages.
- Prior to development I have 20 year military service- I have the leadership experience and know-how to complete the mission.
- Most importantly, I am all about making positive impact at organizations that see inclusivity as a strength rather than an obligation.
If you have room on your team, I'm looking for a good place to put my skills to use!