The problem with ps -efl | grep PORT_NUMBER is that PORT_NUMBER may match other columns in the output of ps as well (date, time, pid, ...). A potential killing spree if run by root!
I would do this instead :
PORT_NUMBER=1234
lsof -i tcp:${PORT_NUMBER} | awk 'NR!=1 {print $2}' | xargs kill
Breakdown of command
- (
lsof -i tcp:${PORT_NUMBER}) -- list all processes that is listening on that tcp port
- (
awk 'NR!=1 {print $2}') -- ignore first line, print second column of each line
- (
xargs kill) -- pass on the results as an argument to kill. There may be several.