Script bash Linux per matar processos fdserver que no tenen associada una connexió:
Bash
#/bin/bash
# Matar processos FDServer que no tenen una connexió assignada
# 16/10/2018 David Marti
# SINTAXI: ./kproc [matar]
# Si s'especifica el paramatre opcional [matar] es mataran els processos candidats
echo "Inici de proces ..."
matar=0
if [ "$1" = "matar" ]; then
matar=1
echo "ATENCIO: Es mataran els processos candidats"
else
echo "(Els processos candidats no es mataran, tranquil)"
fi
procs=$(ps -ef | awk '{print $2 " " $8}' | grep -i fdserver | awk '{print $1}')
echo "Processos FDServer = " $procs
conn=$(netstat -anp | grep fdserver | awk '{print $7}' | awk -F'/' '{print $1}')
echo "Connexions FDServer = " $conn
notrobats=0
trobats=0
matats=0
for p in $procs
do
trobat=0
for c in $conn
do
if [ $p = $c ]; then
trobat=1
((trobats++))
break
fi
done
if [ "$trobat" == "0" ]; then
((notrobats++))
echo Proces $p no trobat, candidat a morir ...
echo DETALL: $(ps -p $p -o etime -o comm= -o cmd)
if [ $matar == "1" ]; then
kill -9 $p
echo Proces $p matat!
((matats++))
fi
fi
done
echo "* Trobats = $trobats"
echo "* No trobats = $notrobats"
echo "* Matats = $matats"
echo Fi del proces