CPU ve / veya bellek kullanımı% 80'e ulaştığında işlemleri öldüren bir komut dosyası oluşturdum. Bu gerçekleştiğinde öldürülen süreçlerin bir listesini oluşturur. Geliştirmek için ne yapabilirim?
while [ 1 ];
do
echo
echo checking for run-away process ...
CPU_USAGE=$(uptime | cut -d"," -f4 | cut -d":" -f2 | cut -d" " -f2 | sed -e "s/\.//g")
CPU_USAGE_THRESHOLD=800
PROCESS=$(ps aux r)
TOPPROCESS=$(ps -eo pid -eo pcpu -eo command | sort -k 2 -r | grep -v PID | head -n 1)
if [ $CPU_USAGE -gt $CPU_USAGE_THRESHOLD] ; then
kill -9 $(ps -eo pid | sort -k 1 -r | grep -v PID | head -n 1) #original
kill -9 $(ps -eo pcpu | sort -k 1 -r | grep -v %CPU | head -n 1)
kill -9 $TOPPROCESS
echo system overloading!
echo Top-most process killed $TOPPROCESS
echo CPU USAGE is at $CPU_LOAD
else
fi
exit 0
sleep 1;
done
sleep 1
döngüde bir var
while [ 1 ]
Bu komut dosyasının tek başına ne kadar CPU harcayacağını merak ediyor. Ayrıca,kill -9
sürekli çalışan bir script 3 çağrı ? Bu bana titreme veriyor ...