LINUX.ORG.RU

Ограничить память для процесса.

 ,


0

2

Скажите как заставить Linux прибить процесс если он попытается выделить больше определенного количества памяти. Или можно ли установить лимит по памяти для определенного приложение, что бы ядро прибило этот процесс в случае превышения заданого лимита. Зарание спасибо.


Ответ на: комментарий от beastie

ulimit [-acdfHlmnpsStuv] [limit]

А как ОС поймёт к какому процессу или пользователю тот или иной лимит относится?
Или эти лимиты действуют сразу на всех?

torvn77 ★★★★★
()

Где то в недрах proc и sys должна быть информация о занятой памяти.
Думаю тебе надо действовать так.
сначала по имени комманды находить pid нужных процессов.
Потом проверять соответствующии файл в proc или sys.
Ну завершать те процессы,что превысили лимит.

А можно сделать так,процесс запускается из стартового скрипта который в определённой папке размещает файл с pid запущенного процесса.

torvn77 ★★★★★
()
Ответ на: комментарий от torvn77

Да спасибо ulimit как бы оно. Правда не могу понять как запустить приложение с ним не меняя лимит для всей сессии.

CunMun
() автор топика
Ответ на: комментарий от torvn77

afaik ставится для текущей оболочки:

#!/bin/sh

ulimit -v 100500
/usr/bin/myapp &

elijah_sd
()
Ответ на: комментарий от torvn77

О сори я фигную написал. Вроде как setrlimit из под gdb помогло. Спасибо еще раз всем кто ответил.

CunMun
() автор топика
Ответ на: комментарий от CunMun

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

man prlimit

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.