[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: nice -n - только от рута?



2011/9/11 Ivan Shmakov <ivan@gray.siamics.net>:

>        К слову, я на эти <<грабли>> как-то раз наступил, лет десять
>        назад.  С тех пор с RT-процессами не связывался; и даже когда
>        postinst мне предлагал X-сервер таковым сделать -- без раздумий
>        отказывался.

У меня появилась совсем другая идея. Реализуется сложнее, зато не
требует привилегий рута.

Мне ведь не нужен реалтам. Мне нужно, чтобы другие мои же приложения
не мешали mplayer. Но когда mplayer нет - работали нормально.

Так вот - перед стартом mplayer взять все PID нынешнего юзера, кроме
данного процесса, и сделать им renice 10. А после завершения mplayer -
обратно.

Достоинства:

- Не надо рута
- Не мешаем X серверу (на этой машине он от рута)
- Можно обходиться с разными процессами по-разному. Например, не
трогать window manager или pidgin, если он может понадобиться и при
этом не ест процессор. А злобному flashplugin-nonfree выдать
SCHED_BATCH.

Недостатки:

- При аварийном завершении скрипта система останется в странном состоянии
- Не влияет на процессы, запущенные уже после запуска mplayer (правда,
если всё-таки тронуть window manager - тогда как я понимаю влияет, они
обычно его дети? Панель для запуска программ является частью icewm)
- Если что-то юзерское шло в виде nice или SCHED_BATCH до запуска
mplayer - оно окажется обычным процессом после завершения

Можно ли как-то обойти эти грабли и есть ли тут другие, которых я не заметил?

-- 

-- 
Yours, Mikhail Ramendik

Unless explicitly stated, all opinions in my mail are my own and do
not reflect the views of any organization

Reply to: