На FreeBSD в файле /etc/login.conf я прописываю ограничения на использование компьютерных ресурсов для пользователей по следующим параметрам:
- cputime
- openfiles
- maxproc
- memoryuseВ login.conf прописываются МАКСИМАЛЬНО ДОПУСТИМЫЕ значения этих показателей. А как мне узнать их ТЕКУЩИЕ значения на данный момент времени?
Команда TOP мне не подходит, т.к. мне нужно, чтобы моя программа на СИ смогла бы прочитать эти данные, а из TOP я это сделать не могу. К тому же TOP не выводит значение показателя openfiles.
>На FreeBSD в файле /etc/login.conf я прописываю ограничения на использование компьютерных ресурсов
>для пользователей по следующим параметрам:
>- cputime
>- openfiles
>- maxproc
>- memoryuse
>
>В login.conf прописываются МАКСИМАЛЬНО ДОПУСТИМЫЕ значения этих показателей. А как мне узнать
>их ТЕКУЩИЕ значения на данный момент времени?
>
>Команда TOP мне не подходит, т.к. мне нужно, чтобы моя программа на
>СИ смогла бы прочитать эти данные, а из TOP я это
>сделать не могу. К тому же TOP не выводит значение показателя
>openfiles.man getrlimit
man getrusage
man setrlimit
>man getrlimit
>man getrusage
>man setrlimitДа, это то, что нужно. А как мне с помощью этих команд ограничить ресурсы для конкретного пользователя?
Т.е. не понятно, как этим функциям передать имя пользователя и т.д.
И еще... В мануалах написано, что "getrusage возвращает текущие ограничения на ресурсы, используемые ТЕКУЩИМ процессом".А мне надо получить не ограничения, а текущие заначения, которые ПОДЛЕЖАТ ограничениям. И эти значения нужно получить для мне как пользователю ROOT для ЛЮБОГО пользователя, а не только для текущего (своего).
Т.е. нужно в любой момент узнавать: сколько на данный момент у такого-то пользователя, например, открыто файлов.
Как я понимаю, функции getrlimit, getrusage и setrlimit в этом мне не помогут. :(
>И еще... В мануалах написано, что "getrusage возвращает текущие ограничения на ресурсы,
>используемые ТЕКУЩИМ процессом".
>
>А мне надо получить не ограничения, а текущие заначения, которые ПОДЛЕЖАТ ограничениям.
>И эти значения нужно получить для мне как пользователю ROOT для
>ЛЮБОГО пользователя, а не только для текущего (своего).
>Ну еще:
quota
lsof
/proc>Т.е. нужно в любой момент узнавать: сколько на данный момент у такого-то
>пользователя, например, открыто файлов.Задача: Ну допустим вы узнали что у меня сейчас открыто 387 файлов.. но мгновенье назад у меня было открыто 1021 файл, о чем вы не знаете.. и в чем тут контроль?
>
>Как я понимаю, функции getrlimit, getrusage и setrlimit в этом мне не
>помогут. :(