Запуск чего-либо по неактивности юзверя

Обсуждается все что связано с Юниксоподобными системами - от дистрибутивов до разбора ядра и конфигурации сервера.

Сообщение Crow » Ср апр 14, 2004 4:00 pm

допустим отошел я от компа - через 5 минут запустилась прога и сделала своё черное дело Изображение . подошёл, шевельнул мышкой - другая прога сделала свое дело.
Это же неплохо и для реальной консольки.
А может просто отлавливать запуск скринсейвера Изображение (как иксового, так и консольного)
ps Mandrake 9.2 on 2.6.3
Всё не так уж важно...
Crow
Капитан
 
Сообщений: 206
Зарегистрирован: Пт мар 28, 2003 4:31 am
Откуда: Ukraine>Kharkov
Пункты репутации: 0

Сообщение pomka » Ср апр 14, 2004 6:44 pm

2Crow
Хм.. А это мысль... Снести xscreensaver (или как там его) и написать свой.
<a href='http://www.pomkinsite.narod.ru/index.html' target='_blank'>My Webpage</a>
pomka
Капитан
 
Сообщений: 249
Зарегистрирован: Чт янв 01, 2004 1:17 am
Пункты репутации: 0

Сообщение Crow » Ср апр 14, 2004 7:15 pm

та зачем сносить :) . по крону раз в минуту запускаешь проверку списка процессов на наличие скринсейвера. если есть - пускаешь 1-ю прогу в фон, а основной скрипт продолжает проверять список процессов на наличие скринсейвера раз в 2-5 секунд. если нету - пускаешь 2-ю прогу. :)
а вот с реальной как быть :) . их же N штук :). считать чтоли количество сейверов :). западло если запретит скринсейвер какя-нить прога. надо копать глубже . а может и не надо :)
Всё не так уж важно...
Crow
Капитан
 
Сообщений: 206
Зарегистрирован: Пт мар 28, 2003 4:31 am
Откуда: Ukraine>Kharkov
Пункты репутации: 0

Сообщение MAPA3bM » Чт апр 15, 2004 12:50 am

2Crow
А нафига те скринсейвер? Мониторь уровень загрузки, и по минимуму запускай свою прогу. Еси же нужна активность юзера - мониторь активность клавы/мыши - к примеру, через /proc/interrupts (правда, в 2.6 ядрах там что-то сменилось, что именно - сказать точно не могу). И никаких скринсейверов не надо..читай файл раз в секунду и анализируй..
MAPA3bM
Полковник
 
Сообщений: 1270
Зарегистрирован: Вт дек 31, 2002 12:54 am
Откуда: Приморье
Пункты репутации: 0

Сообщение Crow » Чт апр 15, 2004 5:14 am

да - вариант с /proc/interrupts получше скринсейва буит :)
Всё не так уж важно...
Crow
Капитан
 
Сообщений: 206
Зарегистрирован: Пт мар 28, 2003 4:31 am
Откуда: Ukraine>Kharkov
Пункты репутации: 0

Сообщение Crow » Чт апр 15, 2004 7:24 am

вот что получилось
Код: выделить все
#!/bin/bash
keybrd=$(cat /proc/interrupts|grep " 1:"|awk '{print $2}')
mouse=$(cat /proc/interrupts|grep 12:|awk '{print $2}')
#echo $keybrd $mouse
. /usr/cool/int
let kb=keybrd-oldkb
let ms=mouse-oldms
echo oldkb=$keybrd > /usr/cool/int
echo oldms=$mouse >> /usr/cool/int
#echo $keybrd-$oldkb $mouse-$oldms
#echo $kb $ms
if [ $kb -eq 0 ]; then
       if [ $ms -eq 0 ];then
               if [ -e /var/lock/coollog ]; then
                   exit
               fi
               echo $(/bin/date +"%x %X") cooling on >> /usr/cool/log
               /usr/sbin/fvcool -e
               touch /var/lock/coollog
               until [ ]; do
                   keybrd=$(cat /proc/interrupts|grep " 1:"|awk '{print $2}')
                   mouse=$(cat /proc/interrupts|grep 12:|awk '{print $2}')
                   let kb=keybrd-oldkb
                   let ms=mouse-oldms
                   if [ $kb -ne 0 ];then
                       break
                   fi
                   if [ $ms -ne 0 ];then
                       break
                   fi
                   sleep 5
               done
               echo $(/bin/date +"%x %X") cooling off >> /usr/cool/log
               /usr/sbin/fvcool -d
               rm -f /var/lock/coollog
       fi
fi

ставлю по крону каждую минуту и всё плужится как надо. в данном случае /usr/sbin/fvcool -e запускается при обнаружении неактивности, а /usr/sbin/fvcool -d при обнаружении активности.
Последний раз редактировалось Crow Сб апр 17, 2004 3:53 pm, всего редактировалось 1 раз.
Всё не так уж важно...
Crow
Капитан
 
Сообщений: 206
Зарегистрирован: Пт мар 28, 2003 4:31 am
Откуда: Ukraine>Kharkov
Пункты репутации: 0

Сообщение MAPA3bM » Чт апр 15, 2004 11:11 pm

2Crow
А зачем это вообще нужно? Насколько я помню,
<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->
Note that, even if you say N here, Linux on the x86 architecture will issue the hlt instruction if nothing is to be done, thereby sending the processor to sleep and saving power.
<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
(это из хелпов по ядру, раздел Power Management)
MAPA3bM
Полковник
 
Сообщений: 1270
Зарегистрирован: Вт дек 31, 2002 12:54 am
Откуда: Приморье
Пункты репутации: 0

Сообщение Crow » Пт апр 16, 2004 5:54 am

для NForce hlt не очень охлаждает - лучше юзать фирмовый coolbit. Но у меня от него мрёт комп ( в линухе, в винде всё ок), причем если я ничего за компом не делаю, то всё ок :), иначе - мрёт. вот потому так приходится изворачиваться.
ну а про ядро у меня в APM включено [*] Make CPU Idle calls when idle, отчего при ребуте/шатдауне после остановки apmd (сам не знаю чего не работает acpi)имеем
Код: выделить все
<0>Kernel panic: Attempted to kill the idle task!
In idle task - not syncing
шатдаун доходит до конца, но системник надо ручками рубить.
Всё не так уж важно...
Crow
Капитан
 
Сообщений: 206
Зарегистрирован: Пт мар 28, 2003 4:31 am
Откуда: Ukraine>Kharkov
Пункты репутации: 0

Сообщение MAPA3bM » Пн апр 19, 2004 3:35 am

Насколько я понимаю, принцип действия у этой заразы такой же. И еси она охлаждает лучше - значит, она просто отрывает больше ресурсов системы. Но в таком случае не проще ли частоту снизить?..
MAPA3bM
Полковник
 
Сообщений: 1270
Зарегистрирован: Вт дек 31, 2002 12:54 am
Откуда: Приморье
Пункты репутации: 0

Сообщение Crow » Пн апр 19, 2004 4:33 am

<!--QuoteBegin-MAPA3bM+Apr 19 2004, 06:35--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата (MAPA3bM @ Apr 19 2004, 06:35)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> И еси она охлаждает лучше - значит, она просто отрывает больше ресурсов системы.<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->она их не отрывает вообще, насколько это возможно. она установила битик и вышла(иначе бы в скрипте пришлось пускать её в фоне и киллять процесс потом.) без всяких idle loop.
А частоту снижать смысла пока нет - за 70 проц очень редко переходит(бип в БИОСе).
Всё не так уж важно...
Crow
Капитан
 
Сообщений: 206
Зарегистрирован: Пт мар 28, 2003 4:31 am
Откуда: Ukraine>Kharkov
Пункты репутации: 0

Сообщение MAPA3bM » Пн апр 19, 2004 11:15 pm

2Crow
Уж извини, но по закону сохранения энергии снизить температуру пофигу чего можно 2мя способами: либо меньше греть, либо лучше отводить тепло. Движением воздуха в корпусе этот cool bit вряд ли управляет - а значит, он снижает энергопотребление чего-либо. Если бы это снижение энергопотребления не сопровождалось падением производительности - его сделали бы постоянным. А раз оно переключаемое - значит, устанавливая этот бит, ты снижаешь температуру ценой снижения скорости. Как говорил мой знакомый, "перед законами физики все равны"..
MAPA3bM
Полковник
 
Сообщений: 1270
Зарегистрирован: Вт дек 31, 2002 12:54 am
Откуда: Приморье
Пункты репутации: 0

Сообщение Crow » Вт апр 20, 2004 3:34 am

2MAPA3bM
Возможно ты и прав :)
Насколько я себе представляю работу этого кулбита : мать отключает проц от шины когда проц ничего не делает(<a href='http://vcool.occludo.net/VC_Theory.html' target='_blank'>тут</a>). Как уже оно у НФорса реализовано - один НФорс и знает :)
Я думаю что действительно можно заметить падение производительности, если бы проц использовался на 100% такими маленькими моментами времени, что время выхода его из спячки было сравнимо с длительностью этого момента(спит - дернули - уснул , спит-пхнули в бок - уснул опять).
Всё не так уж важно...
Crow
Капитан
 
Сообщений: 206
Зарегистрирован: Пт мар 28, 2003 4:31 am
Откуда: Ukraine>Kharkov
Пункты репутации: 0


Вернуться в Unix/Linux/*nix

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5