Script bash Linux per matar processos fdserver que no tenen associada una connexió:

#/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