скрипт написать проблем нет, сегодня набросаю выложу, частота возникновения такой проблемы была у меня где то 1-2 в неделю.
Пользователь решил продолжить мысль 07 Ноября 2011, 13:08:17:
скрипт:
#!/bin/bash
Predel=40
Proc=`top -n 1 | grep deluged | awk '{print $10}'`
echo $Predel
echo "----------------------------------------"
echo $Proc
if (( $Proc > $Predel ))
then
echo "----restart deluged----"
killall deluged
`/usr/bin/deluged`
else
echo "----Not restart deluged----"
fi
я не проверял его толком протестируйте у кого проблема c нагрузкой
Спасибо за скрипт, основная мысль как что сделать ясна. Но есть несколько "но", и пара вопросов. Я подкорректировал скрипт под мои условия.
#!/bin/bash
Predel=30
Proc=`top -n 1 | grep deluge | awk '{print $9}'`
echo limitCPU=$Predel delugeCPU=$Proc
if (( $Proc > $Predel ))
then
echo "---kill deluge---"
killall /usr/bin/deluge
echo "---start deluge---"
`deluge-gtk`
else
echo "---Not restart deluge---"
fi
print $9 - это потому что мне нужен параметр %згрузки цпу, он девятый, а десятый это память
deluge а не deluged - это потому что я не пользуюсь демоном, в силу ряда причин у меня клиент запускается через deluge-gtk, а он создаёт процесс c именем
/usr/bin/delugeВот как оно выглядит:
$ ps -A | grep deluge
11642 ? 00:10:43 /usr/bin/deluge
И вот с этим связана уже одна проблема.
команда killall — не работает ни в каком виде

a3d:~/bin$ killall /usr/bin/deluge
/usr/bin/deluge: No such file or directory
a3d:~/bin$ killall deluge
deluge: no process found
a3d:~/bin$ killall '/usr/bin/deluge'
/usr/bin/deluge: No such file or directory
a3d:~/bin$ killall "/usr/bin/deluge"
/usr/bin/deluge: No such file or directory
Оно и понятно: если нажать двойной TAB после killall, то в списке вообще нету никакого deluge. И как вот с этим мне теперь быть, я в полном ступоре. Я вообще не понимаю почему killall не видит его, хотя top и ps прекрасно обнаруживают. Как его убить? Что то читал про kill -9 но там же нужно номер процесса и вообще можно ли так жёстко его убивать, он же в это время что то качает/ пишет. Хочется как то покорректней.
А в остальном скрипт я протестировал (вхолостую) вроде правильно действует.
з.ы. И еще есть вопрос почему в скрипте строчка запуска `/usr/bin/deluged` заключена в символы `` ? Что это даёт?