[CentOS] netstat - kill by pid ?

Tue Sep 28 16:22:01 UTC 2010
Jay Leafey <jay.leafey at mindless.com>

Carlos S wrote:
> I am writing a small script to kill process(es) listening on
> particular port number. Here I am particularly looking at Java
> servlet-containers like Tomcat and JBoss, which sometimes don't
> complete their shutdown process and it still shows up as running
> process with ps or netstat. This needs to be kill-ed and for that
> knowing pid of that process is necessary. The netstat by default
> doesn't give only pid(s), so one has to use sed/awk/tr like utility to
> extract pid info. Does anyone know any program/utility which gives
> pid(s) based on listening port numbers? Or is there any option in
> netstat that I am missing?
> 
> Thanks,
> CS.

fuser will do what you want.  If you were looking for something 
listening on port 80, for instance:

> [root at server ~]# fuser -n tcp 80
> 80/tcp:               3420  3718  3719  3721  3722  3723  3725  3726  3727
> [root at server ~]# 

The banner ( "80/tcp:" ) is sent to STDERR and the actual PIDs to 
STDOUT, so you could do something like this:

> for procpid in $( fuser -n tcp 80 2>/dev/null )
> do
> 	kill ${procpid}
> done


fuser requires root access.

For more, "man fuser"

-- 
Jay Leafey - jay.leafey at mindless.com
Memphis, TN
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 5529 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.centos.org/pipermail/centos/attachments/20100928/6795b5aa/attachment-0005.bin>