Thursday, September 2, 2010

Script to find the PID of the Process which ps command cannot list.

Sometime we may need some command or code or logic to find the process id of the process when every other command fails to do that, like if you use ps -ef | grep then you will fail to see the process, but the same time if the process was using some port for example 8888, then after killing the process by kill -9 or shutting down the process by using specific shutdown scripts, the port will be still active at that time you will fail to bind this port with new process of same server/instance.

for that we can use following shell script to find out the socket process which are still active on the ports, it will list by process id.

#!/bin/bash



# is the port we are looking for

if [ $# -lt 1 ]
then


echo "Please provide a port number parameter for this script"


echo "e.g. %content 8888?"
exit


fi

echo "Greping for your port, please be patient (CTRL+C breaks) . "

for i in `ls /proc`
do


pfiles $i
grep AF_INET
grep $1


if [ $? -eq 0 ]


then


echo Is owned by pid $i


echo ""


fi

done

Any comments ?? / Suggestions ??
 
Thanks
Shailesh

No comments: