Ksh скрипт для закрытия процесса

Как-то у меня возникла проблема, необходимо было убивать подлипшие  процессы, которые могли так закушать память что сервак начинал кряхтеть и выдавать не характерные звуки :) В моем случаи это был подлипший поллер Cacti, который собирал данные с Asterisk-ов. Для этого я написал небольшой скрипт, который может убивать определенный процесс:

#!/bin/ksh
if [ $# -gt 0 ]; then
process_name=$1
ps_count=`ps -ef | grep -v 'grep' | grep -v 'kill' | grep -i -c $process_name`
echo "Process count: $ps_count"
set -A array_name `ps -ef | grep -i $process_name | grep -v 'grep' | grep -v 'kill' | awk '{print $2}' | sort -u`
print "ps -ef | grep -i $process_name | grep -v 'grep' | grep -v 'kill' | awk '{print \$2 \$8}' | sort -u -n"
print "${array_name[*]}"
kill_count=0
while [ $kill_count -lt $ps_count ]
do
kill -9 ${array_name[$kill_count]}
# print "kill -15 ${array_name[$kill_count]}"
((kill_count=kill_count+1))
done
else
print "Usage: $0 process_name"
print ""
fi

Если назвать скрипт например kill_process.sh, то запускаем его как:

#kill_process.sh <название процесса>

Случайные Статьи

Loading…


Количество просмотров :2500

Оставьте коментарий