В моем случаи пригодилось для Exim, поэтому привожу пример для него, аналогично для любого другого процесса. Запускать по крону.
#!/bin/bash
processToWatch=»exim4″ # имя процесса
triggerValue=20 # лимит CPU в %
tempFileName=tmp-cpu # some name of the temp file for the ps, grep data
ps auxww | grep «$processToWatch» | grep -v grep > /tmp/$tempFileName
export LINE
(
read LINE
while [ -n "$LINE" ]
do
set $LINE
read LINE
if [ $(echo "$3" | sed -e 's/\.[0-9]*//g’) -gt $triggerValue ]; then
kill $2
fi
done
)< /tmp/$tempFileName