Last Updated: February 25, 2016
·
1.523K
· derrylwc

Find and kill a process using a particular port

What/Why

Sometimes when I'm running services locally, I run into conflicts where "something is already using port XXXX". For this reason, I wrote a bash function to find and kill whatever process(es) using that port.

Use this function wisely, as you shouldn't just kill processes willy-nilly

How

Here is the script:

kill() {
    PID=$(lsof -i:$1 | grep 'username' | awk '{print $2}')
    if [ $PID ]; then
        kill $PID;
    fi
}

I'm using lsof to list processes by port number, grep to isolate the lines of output that contain actual processes (not the header), and finally awk to return the PID value.

This is then stored in a variable, and if it exists, then it will attempt to kill that process.

Remember to replace username with your username. You can also grep on other values, depending on what program you know is using the port (e.g. 'ruby' or 'Chrome').