How to find processes based on port and kill them all? [duplicate]
Find processes based on port number and kill them all.
ps -efl | grep PORT_NUMBER | kill -9 process_found_previously
how to complete the last column?
Solution 1:
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 tokill
. There may be several.
Solution 2:
1.) lsof -w -n -i tcp:8080
2.) kill -9 processId
Solution 3:
kill $( lsof -i:6000 -t )
Or if you need permissions:
sudo kill $( sudo lsof -i:6000 -t )
Solution 4:
Propose to use fuser command:
fuser -k -TERM -n tcp ${PORT_NUMBER}