Я использую фоновый сервис, который время от времени пропускает память. Для предотвращения использования Alt+SysRq REISUB[1] я хотел бы ограничить Использование оперативной памяти для одного процесса или пользователя системы.
Я действительно хотел бы сказать: Пользователь x может использовать максимальную сумму RAM 1 ГБ.
Действительно ли это выполнимо? Мне нужен вид виртуальной машины для этого? Я использую Ubuntu 9.10.
ulimit является Вашим другом. Проверьте флаг-m. Я думаю, что Вы устанавливаете это перед запуском процесса, и он применяется с тех пор (в текущей оболочке).
В дополнение к командам оболочки ulimit
(для удара) или limit
(для csh), можно управлять этим из кода с ulimit()
функция.