подумав над скриптом autogroup
подумав на баш-костылями, использующие cgroups
наваял 2 скрипта
#!/bin/bash
for user in `grep '/home/' /etc/passwd|grep -v 'nologin'|cut -d: -f1`;
do
if [[ -d `grep $user /etc/passwd|grep -v 'nologin'|cut -d: -f6` ]]; then
export X_USER=`echo $X_USER $user|tr " " ","`;
fi
done
while [[ `pidof X` ]]
do
sleep 2 && ionice -n 7 -t -c 3 -p `pgrep -u root -v X` &>/dev/null || exit 1
sleep 2 && ionice -n 0 -t -c 1 -p `pgrep -u $X_USER && pidof X` &>/dev/null || exit 1
sleep 2 && renice -n -19 -p `pgrep -u $X_USER && pidof X ` &>/dev/null || exit 1
sleep 2 && renice -n 20 -p `pidof kswapd0` &>/dev/null || exit 1
exit 0
done
#!/bin/bash
PROGRAMMS="ktorrent eiskaltdcpp-qt eiskaltdcpp-gtk rtorrent deluged transmission-daemon"
while [[ `pidof X` ]]
do
for prog in `echo $PROGRAMMS|tr " " "\n"`;
do
sleep 2 && renice -n 0 -p `pidof $prog` &>/dev/null
sleep 2 && ionice -n 4 -t -c 0 -p `pidof $prog` &>/dev/null
done
done
/home/megabaks/scripts/renice/test &
/home/megabaks/scripts/renice/renice &
профиты:
исчез баг в кедах+растр при завершении сеанса(тот самый сегфолт)
по цЫферкам qtperf профит - ускорение на ~30% в отрисовке морды
даже при дикой нагрузке на i/o морда по-прежнему откликается на раз
совместимы с bfs, в отличии от autogroup
второй скрипт для того, что бы всякие торренты и DC клиенты не портили малину
первый скрипт отрабатывает и завершается - все процессы, запущенные после его работы и завершения, получают соответствующие права
второй крутится бесконечно
ругайте, пока я пьян и добр %)
З.Ы. если не туда запостил - перенесите, плз